Téléchargez ICI les instruments et les fichiers audio qui accompagnent ce chapitre.
Csound est un programme de synthèse sonore versatile et       
                         très   puissant. Avec plus de 450 modules
       de   traitements            sonores à sa disposition,  l'utilisateur
                 de Csound   possède les outils pour modéliser
     n'importe                 lequel des     synthétiseurs      
    ou des  multieffets           disponibles        sur le marché.
   Csound transforme                 un ordinateur        personnel en une
  station de traitement    audionumérique       haut de gamme —   s'y rejoignent les       univers de la
      création sonore, de la recherche   acoustique, de  la     production
       audionumérique, et de la composition   assistée    
par     ordinateur.      Cependant, il en est de Csound   comme  de    tout
      autre     instrument         : une pratique   assidue   et du talent
sont       requis       pour   acquérir        une réelle 
virtuosité.         Vous découvrirez   bientôt  que Csound
 est l'instrument    de  musique le plus sophistiqué   qui soit. Mais
vous  devez pratiquer!     La récompense          de  votre   engagement
  sera      la production        de timbres   et  de   textures      d'une
beauté  peu commune.          Avec     Csound,  la connaissance  
   et   l'expérience         sont la   clé...et           votre
   imagination,  la seule      limite.
                                                                        
                                             
                                                                        
         Ce  chapitre     est   conçu       comme    un  parcours
    d'initiation           à       Csound.        Le    long   du
 chemin,  nous    étudierons          de nombreuses        techniques 
         de   traitements        et    de  synthèses           sonores,
   et    nous    verrons     comment            elles sont implémentées
                            dans     Csound.     Je vous encourage     à
   rendre,        écouter,                  étudier       
    et modifier  chacun          des   simples   instruments        présents
          dans     ce  tutoriel.              Ce faisant,    vous   acquérirez 
        une claire     compréhension                         du
  langage     Csound,        et des bases   solides    pour    construire 
   votre     propre    librairie          d'instruments.      De  plus,  travailler
     les bases      exposées            ici       vous  permettra
 d'apprécier        et   d'appliquer     les  modèles     
           de traitements   et   de  synthèses        sonores    plus
 avancés,        présentés            par      mes 
 collègues     et amis  dans les    chapitres      suivants    de
ce   livre.
                                                                        
                                             
Le CD-ROM qui accompagne ce texte contient des milliers d'instruments
                          et des centaines de compositions        Csound. 
                       Chacun       ouvre  une porte        sur    l'un  
  des       nombreux        mondes         de Csound.      En fait,  une vie
 entière                       serait    nécessaire       
pour     explorer  pleinement              chacun d'eux.      Une    approche
  possible         serait   de   compiler              tous les orchestres
   présents          dans       le  CD-ROM,          de  sélectionner
      ceux  qui vous  semblent    les    plus       intéressants,
        et   de les  sampler  afin     de  les utiliser             dans
 vos   compositions.         Cette  librairie        serait  juste     une
 collection         de   sons  uniques,          et   votre chemin serait
     à     son terme.
                                                                        
                                             
Cependant, je conseille de lire, de rendre, d'écouter          
                              les exemples   donnés, et ensuite  
     d'étudier                 les    techniques           de traitements
                         et de synthèses          sonores       qui
  vous      séduisent                         le plus, en modifiant
           les orchestres       Csound        qui en font usage. Vous appliquerez
           ensuite ces nouvelles            connaissances       dans vos
compositions — vos propres     
"paysages et collages     sonores".  Au  cours   de   cet apprentissage 
       actif,   vous commencerez               à  construire    votre
   propre    librairie       Csound,            et en fin de compte   votre
propre    voie.
                                                                        
                                             
Afin de suivre le chemin que je propose, vous aurez besoin de         
                               comprendre   la structure et la syntaxe  
    du   langage        Csound.        Avec     cette      connaissance,
                     je    vous  crois  capable      de transcrire      
 vos    expériences                          sonores             
 intimes     dans  de beaux et originaux            instruments       Csound,
     et       dans     de vivantes sculptures            sonores réellement
     uniques.
                                                                        
                                             
A cette fin, nous allons commencer par apprendre la structure         
                               et la syntaxe   du langage avec lesquelles 
           sont élaborés,         dans un format      texte, 
                       les   fichiers       "orchestre"     et "partition" 
 .  Nous        poursuivrons   ensuite        par     l'exploration      
 d'une        variété       d'algorithmes      de   synthèses 
             et de techniques    de programmation      propres   à 
    Csound.           Pour      finir,     nous aborderons  quelques     
  exemples   de    traitements             sonores.      En chemin,    nous 
   étudierons             quelques       concepts      de base   de 
  numérisation,           et  apprendrons            quelques    astuces 
      de programmation.              Pour  faciliter       la  compréhension 
              des   algorithmes         et du    chemin      du signal,  
nous    représenterons        les  instruments            Csound 
 sous forme      de  diagrammes.   De   plus,    je  vous     donnerais 
    des  exercices      qui vous aideront      à    comprendre   
  pleinement       les  diverses   façons      de  "travailler"  
      avec le programme.
                                                                        
                                             
Ne sautez pas les exercices. Et ne vous contentez pas de les          
                              lire. Faites-les   ! Ils vous  permettront
                          d'acquérir                  l'aisance  
       de   ce   langage.         En   fait,   vous pourriez  être
          surpris          de constater               que   ces exercises
vous     "enseignent"        plus     sur la  manière            
de  "travailler"             avec   Csound  que     les  descriptions   
  littéraires              qui les   précèdent.    
            Arrivés          au   terme  de ce   premier    chapitre,
  vous     devriez     posséder                    les connaissances
  requises       pour élaborer       votre    propre     librairie
          de   sons   Csound,  et le   chemin     vous    sera    ouvert
    pour aborder les      chapitres          suivants.
                                                                        
                                             
Ainsi, suivez les instructions du CD-ROM; installez le programme      
                                  Csound   sur votre ordinateur, rendez 
   et   écoutez               quelques         orchestres        
tests     pour  être sûr          que    tout fonctionne    
  correctement;         et   alors,    lancez-vous!
                                                                        
                                             
La nature de Csound, et ses principes de base
Csound est un compilateur musical logiciel                        ou "renderer". 
                                Dans un premier temps, Csound    traduit 
      les    instruments     conçus    textuellement par l'utilisateur 
         dans  le fichier      "orchestre".             Puis il joue 
  ces instruments en   interprétant                               
une  liste de notes-événements,                    
 que     le   programme  peut "lire" soit à partir     d'un     fichier 
                "partition"          rédigé        au  format
  texte,     soit     à     partir d'un fichier       MIDI    généré
              par un séquenceur.         Il   est       aussi    
   possible         de fournir les différents          paramètres
  des notes-événements      en   temps-réel,
    par    le biais  de contrôleurs        MIDI      ou       à
   partir  d'un fichier audio, ou avec    un    dispositif     non-MIDI 
     tel  qu'un   clavier  ASCII ou une souris.
                                                                        
                                             
Selon la puissance de l'ordinateur (et la complexité des instruments
                   de votre fichier "orchestre") la performance de la "partition"
                                                peut être écoutée
                en   temps-réel,                      ou   écrite
                      directement sur                le disque dur      
 dans     un   fichier          audio.   Cette          suite     d'opérations
                 est    dénommée    "sound  rendering",   
    par      analogie    avec     le  concept de l'"image    rendering" 
propre    au  domaine          du   graphisme.
                                                                        
                                             
Une fois rendu, vous écouterez le fichier audio en l'ouvrant   
                                     avec votre éditeur audio préféré,
                                                et   le   jouerez en utilisant
        le   convertisseur              numérique/analogique     
                   (CNA)              de votre carte-mère ou  de votre
   carte       son.
                                                                        
                                             
Ainsi, avec Csound, nous travaillons essentiellement avec deux fichiers texte interdépendants et complémentaires, le fichier "orchestre" et le fichier "partition". Ces fichiers sont nommés librement par l'utilisateur. Dans la pratique, nous donnons aux deux fichiers un nom identique, différenciés alors par leur extension — .orc pour le fichier "orchestre" et .sco pour le fichier "partition" (sco pour l'abréviation de "score"). Dans ce chapitre j'ai nommé les fichiers d'étude : etude1.orc et etude1.sco, etude2.orc et etude2.sco, etude3.orc et etude3.sco, etc. Chacune de ces études d'orchestre contient six instruments (instr 101 — 106, instr 107 — 112, instr 113 — 118 , etc.). A partir de ces études, j'ai individualisé chacun des instruments pour qu'il vous soit plus facile d'expérimenter. Ces fichiers d'étude portent le nom du numéro de l'instrument (101.orc et 101.sco, 102.orc et 102.sco, 103.orc et 103.sco, etc.). Faire correspondre le nom des fichiers "partition" et des fichiers "orchestre" vous aidera à garder une librairie organisée, et je vous recommande vivement de procéder ainsi. Tous les fichiers "partition" et "orchestre" du Csound book et du CD-ROM qui l'accompagne suivent cette convention.
Le Fichier                   
                     "Orchestre"
                                                                        
                                             
Le fichier "orchestre" comprend deux sections : une section entête
                 et une section instruments.
                                                                        
                                             
La Section Entête
Dans la section entête vous définissez le taux d'échantillonnage (sr) et le taux de contrôle (kr) auxquels les instruments seront rendus, ainsi que le nombre de canaux de sortie (nchnls). L'entête du fichier "orchestre" que nous utiliserons tout au long de ce texte se présente ainsi :
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
					                                                                   
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                         
       
                                                                        
                                              			
                                                                        
                                              						
                                                                        
                                                                 
                                                                        
                                              				
                                                                        
                                              							 
                                                                        
                                              						sr 
                                                                        
                                              							= 
                                                                        
                                              							44100 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              						kr 
                                                                        
                                              							= 
                                                                        
                                              							4410 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              						ksmps 
                                                                        
                                              							= 
                                                                        
                                              							10 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              					                     
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                      
      nchnls 
                                                                        
                                              							= 
                                                                        
                                              							1 
                                                                        
                                              						
                                                                        
                                              		Figure                   1.1 l'entête
                       par défaut        de  Csound
Le code de cette entête définit un taux d'échantillonnage à 44100 Hz (44.1 Khz), un taux de contrôle à 4410 Hz, avec un rapport des deux égal à 10 (ksmps = sr/kr). Le nombre de canaux de sortie étant fixé à 1, le fichier audio rendu par cet orchestre sera en mono (si nous voulions rendre un fichier audio stéréo, nous fixerions simplement la valeur de nchnls à 2).
La Section Instruments
Dans l'environnement Csound, les instruments sont connectés les uns aux autres comme autant de "modules" ou opcodes qui soit génèrent des signaux, soit les modifient. Ces signaux sont représentés par des symboles, des vignettes (labels), ou par des noms de variable qui peuvent être "patchés" d'un opcode à l'autre. Chacun des instruments est numéroté et délimité par ces déclarations : instr et endin. Le nombre d'instruments à l'intérieur d'un orchestre n'est pas limité. En fait, dans Csound "tout" est instrument — vos 8000 voies de sampling, vos 4000 voies de synthèse FM, vos 2000 voies de synthèse par guides d'ondes, vos 1000 bandes EQ, vos 500 canaux de mixage automatisés, vos 250 lignes de délai, n'importe quoi... Pour Csound, ces éléments de synthèse, de traitement de signaux, sont simplement instr 1, instr 2, instr 3, instr 4, etc.
La Syntaxe De l'Orchestre
Dans le fichier "orchestre" de Csound,   
                 la syntaxe utilisée pour définir un opcode
                    est    la   suivante         :
                                                                        
                                         
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
Sortie 
                                                                        
                                              				Opcode 
                                                                        
                                              				Arguments,             
   ... , ... 
                                                                        
                                              				;                 Commentaires    (optionnels) 
                                                                        
                                              			
                                                                        
                                         Si  nous   prenons     l'exemple 
     de   l'opcode         oscil,
                                       nous avons la syntaxe suivante :
                                                                        
                                         
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			Sortie 
                                                                        
                                              				  
                                                                        
                                              				Amplitude 
                                                                        
                                              				Fréquence 
                                                                        
                                              				F-table               
 # 
                                                                        
                                              				; Commentaire 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
a1 
                                                                        
                                              				oscil 
                                                                        
                                              				10000, 
                                                                        
                                              				440, 
                                                                        
                                              				1 
                                                                        
                                              				;     oscillateur 
                                                                        
                                              			
Création Sonore Etude 1: Un Orchestre composé de Six Instruments
Dans notre premier fichier orchestre l'instr 101 utilise l'opcode oscil, un oscillateur à lecture de table, pour calculer une sinusoïde à 440 Hz, d'amplitude 10000. La figure 1.2 shématise l'instr 101 , et la figure 1.3 présente le code de cet intrument.
 
                                                                        
                                             
Figure 1.2 Diagramme de l'instr 101, un simple oscillateur à lecture de table, de fréquence et d'amplitude fixes.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 101 
                                                                        
                                              				                      
                                                                        
				;OSCILLATEUR SIMPLE  
                             
                             
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				oscil 
                                                                        
                                              				 10000,         440,     1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				 a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.3 Code pour l'instr 101, un simple oscillateur à lecture de table, de fréquence et d'amplitude fixes, l'opcode oscil.
Le diagramme de l'instr 101 montre clairement comment la sortie de l'oscillateur (a1) est "patchée" dans l'entrée de l'opcode out qui écrit le signal sur le disque dur.
Csound rend les instruments ligne par ligne, et de haut en bas. Les entrées sont situées à droite de l'opcode, et les sorties à gauche. Les mots qui suivent un point-virgule, considérés comme commentaires, ne sont pas pris en compte dans le calcul.
Pour l'instr 101 (figure 1.3), les arguments d'entrée de l'oscillateur sont fixés à 10000 (amplitude), 440 (fréquence) et 1 (numéro de la table de fonction contenant la forme d'onde que l'oscillateur "lit"). L'opcode de l'oscillateur rend le son 44100 fois par seconde avec ces paramètres, et écrit le résultat dans la variable a1. La valeur des échantillons inscrite dans la variable locale a1 peut alors être lue comme une entrée par les opcodes suivants, tel que l'opcode out. Ainsi, les noms de variables fonctionnent comme les "patchs d'accords" d'un synthétiseur analogique traditionnel. Avec ces "patchs d'accords virtuels", chacun peut diriger les signaux audio et de contrôle vers n'importe quel autre opcode les utilisant comme paramètres d'entrée. Cela permet de contrôler dynamiquement un paramètre (l'équivalent de tourner un bouton) durant le cours d'une note, ou de fournir des données audio à un opcode de traitement sonore.
Dans la figure 1.4, vous pouvez constater que les instr 102 — 106 utilisent le même motif que l'instr 101 (un générateur de signal écrivant sur le disque dur). Nous avons remplacé l'opcode oscil par des opcodes de synthèse plus puissants, comme foscil — un simple synthétiseur FM à 2 oscillateurs, buzz — qui produit un ensemble de "cosines" possédant un lien harmonique, pluck — un simple synthétiseur par guides d'ondes basé sur l'algorithme Karplus-Strong, grain — un synthétiseur granulaire asynchrone, et loscil — un synthétiseur à table d'ondes qui lit les samples en boucle.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              			 
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              			
					                                                                   
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                         
       
                                                                        
                                              			
                                                                        
                                              						
                                                                        
                                                                 
                                                                        
                                              				
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							instr 102 
                                                                        
                                              							                   
                                                                        
   							;SIMPLE 
     FM 
                                   
                                   
                                                                        
                                              							 
                                                                        
                                              						a1 
                                                                        
                                              							foscil 
                                                                        
                                              							 10000,         440,   1, 2, 
          3, 1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							out 
                                                                        
                                              							 a1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              					                     
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                      
        
                                                                        
                                              							endin 
                                                                        
                                              						
                                                                        
                                              				 
                                                                        
                                              			 
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              			
					                                                                   
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                         
       
                                                                        
                                              			
                                                                        
                                              						
                                                                        
                                                                 
                                                                        
                                              				
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							instr 103 
                                                                        
                                              							                   
                                                                        
   							;SIMPLE 
     BUZZ 
                                   
                                   
                                                                        
                                              							 
                                                                        
                                              						a1 
                                                                        
                                              							buzz 
                                                                        
                                              							 10000,     440, 
 10, 1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							out 
                                                                        
                                              							 a1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              					                     
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                      
        
                                                                        
                                              							endin 
                                                                        
                                              						
                                                                        
                                              				 
                                                                        
                                              			 
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              			
					                                                                   
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                         
       
                                                                        
                                              			
                                                                        
                                              						
                                                                        
                                                                 
                                                                        
                                              				
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							instr 104 
                                                                        
                                              							                   
                                                                        
   							;SIMPLE
   MODELAGE PHYSIQUE 
                                   
                                   
                                                                        
                                              							 
                                                                        
                                              						a1 
                                                                        
                                              							pluck 
                                                                        
                                              							 10000,         440,   440,  
         2, 1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							out 
                                                                        
                                              							 a1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              					                     
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                      
        
                                                                        
                                              							endin 
                                                                        
                                              						
                                                                        
                                              				 
                                                                        
                                              			 
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              			
					                                                                   
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                         
       
                                                                        
                                              			
                                                                        
                                              						
                                                                        
                                                                 
                                                                        
                                              				
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							instr 105 
                                                                        
                                              							                   
                                                                        
   							;SIMPLE 
     GRANULATION 
                                   
                                   
                                                                        
                                              							 
                                                                        
                                              						a1 
                                                                        
                                              							grain 
                                                                        
                                              							 10000,         440,   55, 10000,
    10, .05,       1, 3,      1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							out 
                                                                        
                                              							 a1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              					                     
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                      
        
                                                                        
                                              							endin 
                                                                        
                                              						
                                                                        
                                              				 
                                                                        
                                              			 
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
					                                                                   
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                         
       
                                                                        
                                              			
                                                                        
                                              						
                                                                        
                                                                 
                                                                        
                                              				
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							instr 106 
                                                                        
                                              							                   
                                                                        
   							;SIMPLE LECTURE D'UN    SAMPLE  
                                   
                                   
                                                                        
                                              							 
                                                                        
                                              						a1 
                                                                        
                                              							loscil 
                                                                        
                                              							 10000,         440,   4 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              						  
                                                                        
                                              							out 
                                                                        
                                              							 a1 
                                                                        
                                              						
                                                                        
                                              							 
                                                                        
                                              					                     
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                      
        
                                                                        
                                              							endin 
                                                                        
                                              						
Figure 1.4 Diagrammes et codes de l'orchestre pour les instr 102 — 106, une série d'instruments à fréquences et amplitudes fixes qui utilisent différentes techniques de synthèse pour produire une seule note de même amplitude (10000) et de même fréquence (440).
La structure identique de ces générateurs de signaux apparaît clairement. Mais lorsque nous écoutons le rendu de chacun, nous percevons leurs sons comme tout à fait uniques. Bien qu'ils partagent une même fréquence de 440 Hz et une amplitude de 10000, l'algorithme de synthèse utilisé par chacun des opcodes est fondamentalement différent — exigeant la spécification d'un ensemble de paramètres qui leurs sont propres. En fait, ces six opcodes générateurs de signaux (oscil, foscil, buzz, pluck, grain et loscil) sont au coeur des techniques de synthèse proposées par les plus populaires des synthétiseurs présents sur le marché. On peut dire que dans Csound, un seul opcode est un synthétiseur complet! D'accord...peut-être moins excitant et versatile, mais...combiné avec d'autres opcodes, Csound peut, et en effet vous emmènera plus loin que toute implémentation commerciale.
Le Fichier "Partition"
Regardons à présent le fichier "partition" qui "joue" cet orchestre d'instruments. Comme le fichier "orchestre", le fichier "partition" a deux sections : les tables et les notes. Dans la première section, nous utilisons des sous-programmes (les GENS) pour directement "générés" des tables-fonctions ("f-tables") et/ou pour remplir ces tables de fichiers audio "lus" depuis le disque dur. Dans la seconde partie, nous écrivons les notes-événements ou déclarations de notes (appelés aussi i-statements). Ces notes-événements "jouent" les instruments et leur transmettent les paramètres de jeu tels que les fréquences, les niveaux d'amplitude, les taux de vibrato, et la durée des attaques (chacun de ces paramètres de jeu constitue un "p-fields").
Les sous-programmes GEN
Dans Csound, les sous-programmes qui génèrent des fonctions sont appelés GENS. Chacun d'eux (plus de 20) est optimisé pour calculer une catégorie spécifique de fonctions ou tables d'onde. Par exemple, les sous-programmes GEN5 et GEN7 sont utilisés pour tracer des fonctions composées de segments de courbes exponentielles et de lignes droites; les sous-programmes GEN9 et GEN10 génèrent des formes d'onde complexes constituées d'une somme de simples sinusoïdes pondérées; le sous-programme GEN20 génère des fenêtres standards tels que les fenêtres "Hanning" et "Kaiser" qui sont traditionnellement employées pour l'analyse spectrale et l'enveloppe des grains; le sous-programme GEN21 produit des tables avec différentes distributions aléatoires telles que Gaussian, Cauchy et Poisson; et le sous-programme GEN1 transfère les données d'un fichier audio préenregistré dans une table, données qui seront traitées ensuite par l'un des opcodes de Csound, tel que l'oscillateur loscil, dont la fonction est de lire ce type de fichiers en boucle.
La définition des tables-fonctions, ainsi que leur utilisation par les instruments de l'orchestre, est laissée à votre entière liberté — le designer de sons. Quelquefois, c'est une question de bon sens. D'autres fois une question de préférences ou d'habitudes. Par exemple, l'instr 106 utilise un oscillateur qui lit des samples en boucle, loscil. J'ai choisi GEN1 pour charger un sample dans l'orchestre. Pour l'instr 102, utilisant l'opcode foscil, j'aurais pu choisir de moduler les fréquences de deux formes d'onde quelconques, mais j'ai opté pour une approche traditionnelle et modulé deux sinusoïdes définies par GEN10.
La Syntaxe Du Fichier "Partition"
Dans le fichier "partition", la syntaxe pour définir une fonction est la suivante :
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
f 
                                                                        
                                              				numéro 
                                                                        
                                              				temps   
         d'initialisation 
                                                                        
                                              				taille  
          de       la table 
                                                                        
                                              				GEN     
       Sous-programme 
                                                                        
                                              				paramètre1 
                                                                        
                                              				paramètre2... 
                                                                        
                                              				;       
         commentaire 
                                                                        
                                              			
Si nous voulons générer une sinusoïde de 16 points, nous devons écrire la déclaration de table (ou f-statement) suivante :
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
f 
                                                                        
                                              				101 
                                                                        
                                              				0 
                                                                        
                                              				16 
                                                                        
                                              				10 
                                                                        
                                              				1 
                                                                        
                                              				;   une     sinusoïde 
                                                                        
                                              			
Alors, la table 101 génèrera la fonction de la figure 1.5.
 
                                                                        
                                             
Figure 1.5 Une table de 16 points traçant une sinusoïde, définie par GEN10 avec les arguments: f 101 0 16 10 1
Comme vous pouvez le voir, une sinusoïde dessinée avec une résolution de 16 points n'est pas particulièrement lisse. La plupart des tables doivent avoir une longueur dont le nombre de points est un " pouvoir-de-2". Pour des ondes synthétisées, nous définissons typiquement des tables allant de 512 (5K) à 8192 (8K) points. Dans notre première partition, etude1.sco, nous définissons les fonctions suivantes en utilisant GEN10, GEN20 et GEN1:
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			f1 
                                                                        
                                              				0 
                                                                        
                                              				4096 
                                                                        
                                              				10 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			f2 
                                                                        
                                              				0 
                                                                        
                                              				4096 
                                                                        
                                              				10 
                                                                        
                                              				1     .5  .333 .25       .2
.166 .142 .125 .111             .1 .09   .083 .076      .071 .066     .062 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			f3 
                                                                        
                                              				0 
                                                                        
                                              				4097 
                                                                        
                                              				20 
                                                                        
                                              				2     1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
f4 
                                                                        
                                              				0 
                                                                        
                                              				0 
                                                                        
                                              				1 
                                                                        
                                              				"sing.aif"               
 0       4 0 
                                                                        
                                              			
Figure 1.6 Tables des différentes fonctions définies dans le fichier "partition" de l'etude1.sco.
Les quatre fonctions sont chargées au temps 0. f 1 et f 2 utilisent toutes deux GEN10 pour remplir des tables de 4 K (4096 valeurs). f 1 trace un cycle d'une sinusoïde, f 2 les 16 premiers harmoniques d'une onde en dents de scie. GEN20 remplit une table de 4 K (f 3) avec une fenêtre Hanning qui sera utilisée par l'opcode grain. Pour finir, f 4 utilise GEN1 pour remplir une table avec le fichier audio d'un vocaliste masculin chantant le mot "la" à une hauteur de A440 pendant 3 secondes (fichier échantillonné à 44.1 Khz, mono, 16-bit, format AIFF). Ce sample est utilisé par l'opcode loscil. (Notez que la longueur de table de f 4 est égale à 0. Cela conduit le sous-programme GEN1 à prendre sa longueur dans l'"entête" même du fichier audio "sing.aif". Ici, cette longueur est de 132300 échantillons — soit 44100 échantillons-par-seconde * 3 secondes.)
La Liste De Notes
Dans la seconde partie du fichier "partition", nous écrivons les notes-événements. Comme dans le fichier "orchestre", chacune de ces déclarations de note occupe une seule ligne. Elles activent un instrument à un temps et pour une durée donnés. De plus, chaque déclaration de note peut être utilisée pour transmettre un nombre virtuellement illimité de paramètres à l'instrument, paramètres qui peuvent être modifiés d'une note à l'autre.
Comme l'"orchestre" rend le son ligne par ligne, de même la "partition" est lue ligne par ligne (note par note). Cependant, plusieurs notes peuvent avoir le même temps de départ, et ainsi être jouées simultanément. En utilisant Csound, chacun doit avoir à l'esprit que deux notes ou plus, jouées simultanément ou se chevauchant, voient leurs amplitudes s'ajouter. Cela peut occasionner un phénomène d'écrêtage lorsque les échantillons dépassent une certaine limite (nous discuterons cela en détail un peu plus loin).
Vous avez peut-être remarqué que dans l'"orchestre", des virgules séparaient les arguments d'un opcode. Ici dans la "partition", les arguments des f-tables et des déclarations de notes (les p-fields) sont séparés par des espaces ou des tabulations. Les virgules ne sont pas utilisées.
Afin de conserver une organisation claire, les designers de sons utilisent souvent la tabulation pour séparer leurs p-fields. Ainsi ces p-fields restent alignés en colonnes régulières, ce qui facilite la lecture et la correction de possibles erreurs. Ceci n'est pas nécessaire au bon fonctionnement de Csound — il s'agit juste d'une recommandation!
Les Trois Premiers P-Fields
Pour chacune des déclarations de notes ou i-statements, la nature des trois premiers p-fields est réservée. Ils définissent le numéro de l'instrument, le temps d'initialisation et la durée de la note.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			; 
                                                                        
                                              				p1 
                                                                        
                                              				p2 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i 
                                                                        
                                              				#   instrument 
                                                                        
                                              				temps 
     d'initialisation 
                                                                        
                                              				
                                                                        
                                                  durée 
                                                                        
                                              			
Vous — le designer de sons, déterminez la fonction des autres p-fields. Traditionnellement, p4 est réservé à la définition de l'amplitude, et p5 à celle de la fréquence. Cette convention a été adoptée dans ce chapitre. Dans notre première partition de l'etude1.sco, une seule note de 3 secondes est jouée successivement par les instr 101 — 106. Le temps d'initialisation de chaque note étant espacé de 4 secondes, chaque événement audio sera séparé par 1 seconde de silence.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;       P1 
                                                                        
                                              				P2 
                                                                        
                                              				P3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;   instrument           # 
                                                                        
                                              				temps       d'initialisation 
                                                                        
                                              				durée 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   101 
                                                                        
                                              				0 
                                                                        
                                              				3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   102 
                                                                        
                                              				4 
                                                                        
                                              				3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   103 
                                                                        
                                              				8 
                                                                        
                                              				3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   104 
                                                                        
                                              				12 
                                                                        
                                              				3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   105 
                                                                        
                                              				16 
                                                                        
                                              				3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i   106 
                                                                        
                                              				20 
                                                                        
                                              				3 
                                                                        
                                              			
Figure 1.7 Partition simple utilisée pour jouer les instr 101 — 106, représentés dans les figures 1.2 et 1.4.
Exercises pour l'Etude 1
• Rendez les fichiers "orchestre" et "partition" : etude1.orc & etude1.sco.
• Jouez et écoutez les particularités sonores de chaque instrument.
• Modifiez la "partition" et changez la durée de chaque note.
• Faites débuter toutes les notes ensembles.
• Placez plusieurs notes en commentaires, de sorte qu'elles ne "jouent" plus du tout.
• Coupez, copiez et collez de nombreuses notes, changez leur temps d'initialisation (p2) et leur durée (p3), et faites commencer et finir les mêmes instruments à différents moments.
• Créez un canon à l'unisson avec l'instr 106.
• Dans le Csound Reference Manual, cherchez et lisez la documentation des opcodes utilisés dans les instruments 101 — 106.
 			                                   
                                                                        
                                                                        
                                                                        
                                                                        
                       
  
                                                                        
                                              				
                                                                        
                                                         
                                                                        
                                              			
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					oscil 
                                                                        
                                              					xamp, 
                                                                        
                                              					xcps, 
                                                                        
                                              					ifn[, 
                                                                        
                                              					iphs] 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					foscil 
                                                                        
                                              					xamp, 
                                                                        
                                              					kcps, 
                                                                        
                                              					kcar, 
                                                                        
                                              					kmod, 
                                                                        
                                              					kndx, 
                                                                        
                                              					ifn[, 
                                                                        
                                              					iphs] 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					buzz 
                                                                        
                                              					xamp, 
                                                                        
                                              					xcps, 
                                                                        
                                              					knh, 
                                                                        
                                              					ifn[, 
                                                                        
                                              					iphs] 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					pluck 
                                                                        
                                              					kamp, 
                                                                        
                                              					kcps, 
                                                                        
                                              					icps, 
                                                                        
                                              					ifn, 
                                                                        
                                              					imeth[, 
                                                                        
                                              					iparm1, 
                                                                        
                                              					iparm2] 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					grain 
                                                                        
                                              					xamp, 
                                                                        
                                              					xpitch, 
                                                                        
                                              					xdens, 
                                                                        
                                              					kampoff, 
                                                                        
                                              					kpitchoff, 
                                                                        
                                              					kgdur, 
                                                                        
                                              					igfn, 
                                                                        
                                              					iwfn, 
                                                                        
                                              					imgdur 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              			                       
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                        
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
  ar 
                                                                        
                                              					loscil 
                                                                        
                                              					xamp, 
                                                                        
                                              					kcps, 
                                                                        
                                              					ifn[, 
                                                                        
                                              					ibas][, 
                                                                        
                                              					imod1, 
                                                                        
                                              					ibeg1, 
                                                                        
                                              					iend1][, 
                                                                        
                                              					imod2, 
                                                                        
                                              					ibeg2, 
                                                                        
                                              					iend2] 
                                                                        
                                              				
• Dans l'"orchestre", modifiez les paramètres de fréquence et d'amplitude de chaque instrument.
• Changez le ratio c:m dans l'instrument foscil.
• Changez le nombre d'harmoniques de l'instrument buzz.
• Changez la fonction de l'instrument pluck.
• Changez la densité et la durée de l'instrument grain.
• Faites trois copies de f 4, et nommez-les f 5, f 6 et f 7. Chargez vos propres samples ("mesSons1.aif," "mesSons2.aif," "mesSons3.aif"). Créez plusieurs copies de l'instr 106 et attribuez-leurs les numéros suivants : instr 66, instr 67 et instr 68. Construisez les instruments afin que chacun d'eux "lise" un fichier audio différent à une hauteur différente. Jouez les différents samples simultanément.
• A partir de l'etude1.orc dupliquez, et numérotez chaque instrument dupliqué. Choisissez pour chacun des paramètres de ces instruments des valeurs distinctes. Jouez l'ensemble des douzes instruments simultanément. Ajustez les amplitudes de telle sorte que ne soient pas produits des échantillons hors de la plage de conversion.
Sons, Signaux et Echantillonnage
Afin d'acquérir une meilleure compréhension de Csound, assurons-nous de bien comprendre les propriétés acoustiques du son, et leurs représentations dans un ordinateur.
L'expérience du son est une réponse sympathique de notre tympan à la compression et à la raréfaction des molécules d'air, projetées en toutes directions, à partir d'une source vibratoire. Ces variations de pression occasionnent un phénomène appelé ondes. La figure 1.8 montre le cycle d'une onde carrée, à la fois dans le domaine temporel (a) et fréquentiel (b). Nous y retrouvons shématisé le parcours de l'onde dans le temps (1.8a). Les molécules d'air compressées correspondent au passage de l'onde au-dessus de l'axe horizontal (positif) et leur raréfaction au passage de l'onde au-dessous de cet axe (négatif).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.8 Représentation d'une onde carrée dans le domaine temporel (a) et fréquentiel (b).
Dans le domaine temporel (a), l'axe vertical indique l'amplitude de l'onde d'un signal, qui se déploit dans le temps le long de l'axe horizontal. Dans le domaine fréquentiel (b), l'axe horizontal représente les fréquences d'un signal donné, et l'axe vertical l'amplitude de chacun des composants du spectre.
Nous ressentons les sons dans le domaine temporel comme des variations de pression, mais nous percevons ces mêmes sons dans le domaine fréquentiel comme des variations de hauteur. L'oreille agit comme un transducteur qui transmet le mouvement mécanique du tympan (au travers des osselets : le marteau, l'enclume, et l'étrier) à la membrane de la fenêtre ovale, dont l'onde se diffuse dans le liquide de la cochlée, excitant les cellules ciliées de la membrane basilaire. Ces cellules ciliées discernent très finement les fréquences, et les transmettent au cerveau au travers de nerfs qui leurs sont attachés. Munis de cet ensemble de capteurs, transducteurs et transmetteurs, continuellement nous analysons, codifions, classifions et percevons les caractéristiques complexes des fréquences des ondes sonores, alors que nous résonnons avec le monde qui nous entoure.
Afin de convertir une onde sonore en signaux que nous pouvons voir et manipuler dans l'ordinateur, nous utilisons un transducteur particulier, le microphone. Cette procédure de conversion, illustrée à la figure 1.9, est appelée l'échantillonnage.
Pour échantillonner une onde, nous utilisons un microphone qui convertit la pression acoustique d'une onde sonore en une pression électrique analogique. Ce signal analogique est alors passé dans un filtre passe-bas anti-aliasing pour en retirer les fréquences supérieures à la moitié du taux d'échantillonnage. Ceci est rendu nécessaire par la nature même du système numérique, incapable de représenter fidèlement une fréquence de valeur supérieure à la moitié du taux d'échantillonnage (cette "fréquence mirroir" est appelée fréquence de Nyquist). Ainsi, après avoir filtré les fréquences élevées qui se situent hors de la plage de conversion, nous "mesurons" ou "échantillonnons" l'amplitude du signal à l'aide d'un convertisseur analogique/numérique (CAN — en anglais ADC, pour Analog-to-Digital Converter).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.9 Numérisation d'un signal par prélèvement d'échantillons, retour dans le domaine analogique, et restitution effective du signal par les hauts-parleurs .
Avec un système linéaire 16 bits, vous allez mesurer ou quantifier l'amplitude d'un signal analogique avec des valeurs comprises entre -32768 et 32767 (soit 216) prises à intervalles réguliers, la fréquence d'échantillonnage. Dans l'entête par défaut de Csound, elle est fixée à 44100 fois par seconde. L'échantillonnage est donc une quantisation du signal analogique continu, en une série de petits instantanés (ou pas) — littéralement, nous avons pris des milliers de "petits échantillons" à partir du signal. Vous pouvez voir clairement la quantisation de l'onde simple, présentée à la figure 1.5, où chaque nouvelle adresse reçoit une donnée d'amplitude qui lui est propre.
Pour écouter un son à partir de notre ordinateur, nous convertissons le signal numérique (cette séquence d'échantillons) en signal analogique (une variation continue de différents voltages) à l'aide d'un convertisseur numérique/analogique (CNA — en anglais DAC, pour Digital-to-Analog Converter), puis nous le lissons en le passant au travers d'un filtre passe-bas. Bien, assez de connaissances théoriques pour l'instant. Retournons à Csound.
Création Sonore Etude 2: Les P-Fields
Dans notre seconde étude, nous modifions les instr 101 — 106 de telle sorte qu'ils puissent être mis à jour et modifiés à partir du fichier "partition". Plutôt que de donner une valeur fixe aux arguments des différents opcodes de l'orchestre, comme dans notre etude1.orc, nous leurs attribuons des parameter fields ou p-fields (p4, p5, p6, ...) qui correspondent aux p-fields (numéros de colonne) de la partition. Ainsi, chaque p-fields de l'orchestre reçoit des valeurs qui peuvent être différentes d'une note à l'autre.
Si nous prenons l'exemple de l'instr 107 (figure 1.10), nous voyons que des p-fields sont définis pour chacun des arguments de l'opcode oscil : amplitude (p4), fréquence (p5), et la table d'onde (p6).
 
                                                                        
                                             
Figure 1.10 Diagramme de l'instr 107, un instrument constitué d'un simple oscillateur avec des p-fields comme entrées.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 107 
                                                                        
                                              				                      
                                                                        
				;P-Field      
  Oscil 
                             
                             
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				oscil 
                                                                        
                                              				 p4,     p5,     p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				 a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.11 Code de l'orchestre pour l'instr 107, constitué d'un simple oscillateur avec des p-fields comme entrées.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 107 
                                                                        
                                              				                      
                                                                        
				;P-Field      
  Oscil 
                             
                             
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				oscil 
                                                                        
                                              				 p4,     p5,     p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				 a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
.
Ainsi à partir du fichier "partition" (figure 1.12), nous sommes capables de réutiliser le même instrument pour jouer une séquence de trois octaves descendantes, suivie d'un arpège de LA majeur.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;       P1 
                                                                        
                                              				P2 
                                                                        
                                              				P3 
                                                                        
                                              				P4 
                                                                        
                                              				P5 
                                                                        
                                              				P6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;   ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				freq 
                                                                        
                                              				table       d'onde 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   107 
                                                                        
                                              				0 
                                                                        
                                              				1 
                                                                        
                                              				10000 
                                                                        
                                              				440 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   107 
                                                                        
                                              				1.5 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				220 
                                                                        
                                              				2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   107 
                                                                        
                                              				3 
                                                                        
                                              				3 
                                                                        
                                              				10000 
                                                                        
                                              				110 
                                                                        
                                              				2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   107 
                                                                        
                                              				3.5 
                                                                        
                                              				2.5 
                                                                        
                                              				10000 
                                                                        
                                              				138.6 
                                                                        
                                              				2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   107 
                                                                        
                                              				4 
                                                                        
                                              				2                
                                                                        
                                              				5000 
                                                                        
                                              				329.6 
                                                                        
                                              				2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i   107 
                                                                        
                                              				4.5 
                                                                        
                                              				1.5 
                                                                        
                                              				6000 
                                                                        
                                              				440 
                                                                        
                                              				2 
                                                                        
                                              			
Figure 1.12 Liste des notes de l'instr 107 , qui utilise les p-fields pour "jouer" 6 notes (présence de quelques chevauchements) avec différentes fréquences, amplitudes, et formes d'onde.
Dans notre prochain exemple de p-fields (figures 1.13, 1.14 et 1.15), notre sommaire instr 102 a été modifié en un instrument plus musical et souple, l'instr 108, capable de produire une large palette de couleurs.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.13 Diagramme de l'instr 108, un simple instrument FM avec une série de p-fields comme entrées.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 108 
                                                                        
                                              				                      
                                                                        
				;P-Field      
  FM 
                             
                             
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				foscil 
                                                                        
                                              				 p4,     p5,     p6,    p7,  p8, 
  p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				 a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.14 Code de l'orchestre pour l'instr 108, un simple instrument FM avec une série de p-fields comme entrées.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;       p1 
                                                                        
                                              				p2 
                                                                        
                                              				p3 
                                                                        
                                              				p4 
                                                                        
                                              				p5 
                                                                        
                                              				p6 
                                                                        
                                              				p7 
                                                                        
                                              				p8 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;   ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				freq 
                                                                        
                                              				c 
                                                                        
                                              				m 
                                                                        
                                              				index 
                                                                        
                                              				table       d'onde 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   108 
                                                                        
                                              				7 
                                                                        
                                              				1 
                                                                        
                                              				10000 
                                                                        
                                              				440 
                                                                        
                                              				1 
                                                                        
                                              				2 
                                                                        
                                              				3 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   108 
                                                                        
                                              				8.5 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				220 
                                                                        
                                              				1 
                                                                        
                                              				.5 
                                                                        
                                              				8 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   108 
                                                                        
                                              				10 
                                                                        
                                              				3 
                                                                        
                                              				10000 
                                                                        
                                              				110 
                                                                        
                                              				1 
                                                                        
                                              				1 
                                                                        
                                              				13 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   108 
                                                                        
                                              				10.5 
                                                                        
                                              				2.5 
                                                                        
                                              				10000 
                                                                        
                                              				130.8 
                                                                        
                                              				1 
                                                                        
                                              				2.001 
                                                                        
                                              				8 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i   108 
                                                                        
                                              				11 
                                                                        
                                              				2 
                                                                        
                                              				5000 
                                                                        
                                              				329.6 
                                                                        
                                              				1 
                                                                        
                                              				3.003 
                                                                        
                                              				5 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i   108 
                                                                        
                                              				11.5 
                                                                        
                                              				1.5 
                                                                        
                                              				6000 
                                                                        
                                              				440 
                                                                        
                                              				1 
                                                                        
                                              				5.005 
                                                                        
                                              				3 
                                                                        
                                              				1 
                                                                        
                                              			
Figure 1.15 Notes de l'instr 108 dans lequel 9 p-fields sont utilisés pour "jouer" un synthétiseur FM avec différents temps d'initialisation, durées, amplitudes, fréquences, rapports de fréquences, et index de modulation.
Dans l'extrait de la "partition" présenté à la figure 1.15, chacun des arguments de foscil s'est vu assigné un p-field particulier, et peut ainsi être modifié d'une note à l'autre. Ici, p4 = amplitude, p5 = fréquence, p6 = valeur de la fréquence porteuse ("carrier"), p7 = valeur de la fréquence modulante ("modulator"), p8 = index de modulation et p9 = table d'onde. Ainsi, devenant actif à la septième seconde de l'etude2.sco, l'instr 108 joue six notes consécutives. L'ensemble des notes utilise la fonction f 1 (une sinusoïde, en p9 ). Les deux premières notes, par exemple, sont séparées d'une octave (p5 = 440 et 220) et possèdent un rapport c:m distinct (p7 = 2 et 0.5) et différents index de modulation (p8 = 3 et 8). Les timbres produits sont très différents. Manifestement, l'utilisation de p-fields dans l'orchestre autorise une grande variété de hauteurs et de timbres, même avec le plus simple des instruments.
Exercises pour l'Etude 2
• Rendez les fichiers "orchestre" et "partition" : etude2.orc & etude2.sco.
• Jouez 
                et écoutez les particularités              
                         sonores de chaque note et instrument. 
                                                                        
                                   
• Modifiez le fichier "partition" et changez les temps d'initialisation, les durées, les amplitudes et les fréquences de chaque note.
• A nouveau cherchez et lisez la documentation des opcodes employés dans les instr 107 — 112 dans le Csound Reference Manual, et concentrez votre étude et vos expérimentations sur une technique de synthèse à la fois.
• Explorez les effets produits par différents ratios c:m dans l'instr 108.
• Sans modifier le ratio c:m, explorez les effets d'un index de modulation faible, puis élevé.
• Comparez les différences de timbre entre une modulation avec une sinusoïde (f 1) et une modulation avec une onde en dents de scie (f 2).
• En utilisant l'instr 109, composez une progression d'accords à 4 voix, dans laquelle la basse et le ténor produisent plus d'harmoniques que l'alto et le soprano.
• En utilisant les instr 109 et 112 simultanément, jouez la même partition composée pour l'instr 109 en doublant les parties.
• En utilisant l'instr 110, expérimentez différentes méthodes de l'opcode pluck (voir le Csound Reference Manual pour les arguments additionnels).
• En utilisant l'instr 110, expérimentez en chargeant différentes tables de fonctions — f 1 et f 2.
• Explorez les divers paramètres de l'opcode grain.
• Créez un ensemble de courtes études convoquant chacune un instrument.
• Créez un ensemble de courtes études mobilisant plusieurs instruments. Pensez à ajuster vos niveaux d'amplitudes de telle sorte que ne soient pas produits des échantillons hors de la plage de conversion!
• Baissez le taux d'échantillonnage et le taux de contrôle de l'entête. Recompilez quelques-uns de vos instruments modifiés. Remarquez-vous une différence dans la qualité du son ? Remarquez-vous un changement de brillance ? Remarquez-vous des artefacts (l'apparition de nouveaux bruits) ? Remarquez-vous des "alias" (Nous discuterons la théorie propre à ce phénomène un peu plus tard) ?
Amplitudes et Ecrêtage
Comme nous l'avons vu précédemment, si le système de votre ordinateur accueille un convertisseur 16 bits (ce qui est commun), vous avez le choix entre 216 valeurs d'amplitudes brutes possibles (soit 65536 valeurs allant de -32768 à +32767). Cela équivaut à une amplitude de plus de 90 dB (1 bit de résolution correspond à 6 dB). Si vous avez mis en pratique les exercices, vous avez alors probablement remarqués que les amplitudes des notes dans Csound s'ajoutent les unes aux autres. Si un instrument possède une amplitude de 20000, et que vous jouiez simultanément deux notes de cet instrument, vous demandez à votre convertisseur de produire un signal d'amplitude égal à ± 40000. Hors, votre convertisseur ne peut traiter fidèlement que des valeurs dont la limite se situe autour de 32000. Csound vous indiquera alors le nombre d'échantillons hors de la plage de conversion et le signal audio produit sera écrêté, comme la figure 1.16 le montre.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.16 Ecrêtage résultant de l'addition de deux ondes d'amplitude élevée.
Contrôler les amplitudes est l'un des aspects les plus problématiques du travail avec Csound. Il n'y a pas de solutions simples. Le problème réside dans le fait que les amplitudes dans Csound sont de simples représentations mathématiques d'un signal. Ces valeurs ne prennent pas en compte la nature acoustique et perceptuelle du son.
Exprimé simplement, un signal dont l'amplitude est multipliée par deux ne sera pas forcément perçu deux fois plus fort. Un bon livre sur les lois acoustiques pourrait vous aider à apprécier la complexité du problème. Dans l'environnement Csound, gardez en mémoire le principe additionnel de l'amplitude de chaque note : dans tous les cas où deux ou plusieurs notes sonnent ensemble, leurs amplitudes s'ajoutent. Si les valeurs additionnées dépassent ensemble 32000, votre signal sera écrêté. Cela dit, Csound possède quelques opcodes et outils qui vous aiderons à traiter ce problème, mais aucun des opcodes actuels ou des convertisseurs de valeurs ne permettent de le résoudre. La plupart du temps, vous aurez juste à baisser les niveaux d'amplitude, et à rendre le fichier à nouveau (encore et encore) jusqu'à obtenir un niveau accepté par votre système.
Renouvellement Des Données
Comme vous l'avez vu au cours des deux premières études d'orchestre, nous pouvons définir et mettre à jour des paramètres avec des chiffres décimaux, soit directement dans l'orchestre, soit au travers des p-fields de la partition. Mais le réel pouvoir de Csound réside dans le fait que chacun de ces paramètres peut être mis à jour en utilisant des variables qui produisent de nouvelles valeurs à l'un des quatre taux suivants : setup, i-rate, k-rate, et a-rate, où :
• les variables i-rate sont remplacées et mises à jour à chaque nouvelle note.
• les variables k-rate sont remplacées et mises à jour au taux de contrôle (kr).
• les variables a-rate sont remplacées et mises à jour au taux d'échantillonnage ou taux audio (sr).
Les variables i-rate et k-rate sont "scalaires". Pour l'essentiel, elles prennent une valeur à un temps donné, et la gardent un certain temps. Les variables i-rate sont principalement utilisées pour définir la hauteur et la durée des notes. Elles prennent leur valeur au temps d'initialisation, et demeurent constantes pour la durée de chaque note. Les variables k-rate sont principalement utilisées pour stocker et mettre à jour des enveloppes et tous les signaux sub-audios. Ces variables sont recalculées au taux de contrôle (4410 fois par seconde), tel que définies dans l'entête de l'orchestre (kr). Les variables a-rate sont des "vecteurs" d'informations. Elles sont utilisées pour stocker et mettre à jour des données telles que les signaux de sortie des oscillateurs et des filtres, qui changent aux taux audio (44100 fois par seconde) défini dans l'entête de l'orchestre (sr).
Chacun peut déterminer et identifier le taux auquel une variable sera mise à jour par la première lettre du nom de la variable (i, k, ou a). Par exemple, la seule différence entre les deux oscillateurs ci-dessous réside dans fait que l'un calcule au taux audio, et l'autre au taux de contrôle. Les deux utilisent le même opcode, oscil , et les deux possèdent les mêmes arguments. Seule diffère la résolution de l'échantillon du signal de sortie (sa précision).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			; sortie 
                                                                        
                                              				opcode 
                                                                        
                                              				amp, 
                                                                        
                                              				frq, 
                                                                        
                                              				fonc 
                                                                        
                                              				;                 commentaire 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ksig 
                                                                        
                                              				oscil 
                                                                        
                                              				10000, 
                                                                        
                                              				1000, 
                                                                        
                                              				1 
                                                                        
                                              				;     1000  Hz Sinusoïde 
        - f                         1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
asig 
                                                                        
                                              				oscil 
                                                                        
                                              				10000, 
                                                                        
                                              				1000, 
                                                                        
                                              				1 
                                                                        
                                              				;     1000  Hz Sinusoïde 
        - f                         1 
                                                                        
                                              			
Figure 1.17 Deux opcodes oscil avec une version asig et une version ksig.
Suivant la configuration de notre entête par défaut (sr = 44100 et kr = 4410), ksig rendra les données à un taux d'échantillonnage de 4 K et asig à un taux d'échantillonnage de 44.1K. Dans le cas présent, le résultat à l'audition sera équivalent, car les deux possèdent une résolution d'échantillons suffisante pour calculer précisément une sinusoïde de 1000 Hz. Cependant, si les arguments étaient différents, et si les ondes possédaient des harmoniques supplémentaires, comme l'onde en dents de scie définie par f 2 dans la figure 1.18, le k-rate choisi de 4410 échantillons par seconde ne serait pas suffisamment élevé pour reproduire l'onde dans son intégrité. Le signal de sortie présenterait des "alias" (nous aborderons plus précisément cette question un peu plus tard).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			; sortie 
                                                                        
                                              				opcode 
                                                                        
                                              				amp, 
                                                                        
                                              				frq, 
                                                                        
                                              				fonc 
                                                                        
                                              				;                 commentaire 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ksig 
                                                                        
                                              				oscil 
                                                                        
                                              				10000, 
                                                                        
                                              				1000, 
                                                                        
                                              				2 
                                                                        
                                              				;     1000  Hz dents    de 
  scie    - f             2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
asig 
                                                                        
                                              				oscil 
                                                                        
                                              				10000, 
                                                                        
                                              				1000, 
                                                                        
                                              				2 
                                                                        
                                              				;     1000  Hz dents    de 
  scie    - f             2 
                                                                        
                                              			
Figure 1.18 Une onde en dents de scie "sous-échantillonnée" (étant donné kr = 4410 et une fréquence de 1000), produisant un signal de sortie ksig avec des "alias".
Notez bien que c'est à vous qu'il revient de déterminer le plus approprié et le plus efficace des taux pour rendre vos opcodes. Par exemple, vous pouvez choisir de rendre tous vos oscillateurs de basse fréquence (LFOs) et vos enveloppes au taux audio, mais alors le temps de calcul des signaux de sortie sera rallongé, et dans la plupart des cas, le gain en résolution sera imperceptible à l'audition.
Nom Des Variables
Dans nos créations d'instruments, nous avons jusqu'ici parlé de et utilisé a1, asig, k1 et ksig — dans bien des cas indifféremment! Pourquoi ces noms différents pour une même chose ? Csound est assez difficile comme cela. Pourquoi ne pas être plus clair ?
Bien, lorsqu'il s'agit de nommer une variable, la seule exigence de Csound concerne la première lettre du nom de la variable : elle doit être un i, un k, ou un a. Ceci afin que le programme puisse déterminer le taux auquel sera rendu une ligne de code. Après cela, tout peut convenir.
Par exemple, vous pouvez nommer la sortie de l'opcode loscil ci-dessous a1, asig, asample, ou acoolsound. Chacun de ces noms de variables sera reconnu par Csound, qui fonctionnera sans erreur. Etant donné que les lignes de code sont identiques, le rendu sonore sera exactement le même — peut importe le nom que vous leurs donnerez! C'est donc au designer sonore qu'il revient de définir des noms de variables clairs et informatifs...pour vous même.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			a1              
                                                                        
                                              				loscil 
                                                                        
                                              				10000,                 440, 
  4 
                                                                        
                                              				;     lecture d'un    sample 
  f 4 à                         A440 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig                     
  
                                                                        
                                              				loscil 
                                                                        
                                              				10000,                 440, 
  4 
                                                                        
                                              				; lecture        
            d'un sample    f 4       à             A440 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				asig 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asample                  
     
                                                                        
                                              				loscil 
                                                                        
                                              				10000,                 440, 
  4 
                                                                        
                                              				; lecture        
            d'un sample    f 4       à             A440 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				asample 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			acoolsound 
                                                                        
                                              				loscil 
                                                                        
                                              				10000,                 440, 
  4 
                                                                        
                                              				; lecture        
            d'un sample    f 4       à             A440 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				out 
                                                                        
                                              				acoolsound 
                                                                        
                                              			
Théorème de l'Echantillonnage et Repliement de Spectre
Rentrons plus avant dans les questions de théorie avant de concevoir des instruments plus complexes. Nous avons vu précédemment que l'onde en dents de scie de la figure 1.18, "sous-échantillonnée" (ksig), engendrait la production d'"alias", phénomène appelé "aliasing" ou repliement de spectre. Cet exemple corrobore le "théorème de l'échantillonnage". Il énonce le principe suivant : dans le domaine numérique, pour reconstruire fidèlement (tracer ou reproduire) une forme d'onde à une fréquence donnée, vous avez besoin de deux fois plus d'échantillons que la fréquence elle-même. Pour être rendue dans son intégrité, une fréquence ne doit pas dépasser la moitié du taux d'échantillonnage, cette limite étant connue comme la fréquence de Nyquist. Avec un taux d'échantillonnage de 44100 Hz, vous pouvez rendre des spectres complexes avec des fréquences (ou partiels) allant jusqu'à 22050 Hz — ce qui est bien au-dessus du champ auditif de l'homme. Et avec un taux de contrôle fixé à 4410 Hz, vous pouvez rendre fidèlement des spectres sonores allant jusqu'à 2205 Hz. Cela représenterait un LFO incroyablement rapide, et semblerait un peu élevé pour des signaux qui évoluent lentement dans le temps. Mais vous devez reconnaître que certains segments des enveloppes d'amplitude changent très rapidement. Des contrôleurs "haute-résolution" peuvent réduire les bruits de "zip" produits parfois lors de rapides transitions.
La figure 1.19 illustre graphiquement le phénomène du repliement de spectre. Ici, parce qu'une fréquence est "sous-échantillonnée", un alias (une fréquence de substitution) est produit. Dans ce cas précis, nous avons à rendre une sinusoïde de 5 Hz (a). Nous échantillonnons cette onde à 4 Hz (b) (rappellez-vous que la fréquence requise pour une reproduction fidèle aurait dû être 10 Hz — 2 fois la plus haute fréquence du signal), avec pour résultat la production d'une onde de 1 Hz (c)! Comme vous pouvez le constater, les valeurs retournées par le processus d'échantillonnage tracent la ligne d'une sinusoïde de 1 Hz, et non de 5 Hz. Cet alias est égal à la différence entre la fréquence à échantillonner et le taux d'échantillonnage.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.19 Repliement de spectre. Une sinusoïde de5 Hz (a) est sous-échantillonnée - 4 fois par seconde (b) avec pour conséquence la production d'une sinusoïde de 1 Hz (c).
Afin de bien comprendre ce phénomène, il vous serait profitable d'essayer des taux de variables différents, en utilisant les premiers instruments de ce chapitre. (Je vous recommande de dupliquer tous les instruments, et de leur attribuer un numéro différent. Changez alors toutes les variables asig et a1 en variables ksig et k1, et rendez à nouveau. Vous serez surpris, et peut-être même séduits, par certains des résultats sonores!) Pour l'heure, poursuivons notre chemin.
Création Sonore Etude 3: Quatre techniques pour créer des enveloppes
Il est souvent dit qu'un ordinateur est capable de produire tous les sons imaginables. Et d'un point de vue mathématique, c'est vrai. Mais dans ce cas, pourquoi ces sons sont-ils si souvent "stériles", "monotones", et "ennuyeux"? A mon oreille, un son devient intéressant et séduisant lorsque ses trois principaux paramètres — hauteur, timbre et intensité, sont contrôlés de manière subtile, dynamique et interdépendante. Et ce qui fait de Csound un langage logiciel de synthèse très puissant tient au fait qu'il y est possible de patcher la sortie d'un opcode, quel qu'il soit, avec pratiquement n'importe lequel des arguments d'entrée d'un autre opcode — poussant ainsi le contrôle dynamique des paramètres à un degré sans égal. En modifiant subtilement (ou grossièrement) chacun des arguments d'entrée de vos opcodes, vos sons "synthétiques" prendront vie!
Jusqu'ici nous avons pour l'essentiel successivement ouverts puis fermés brutalement nos instruments Csound — ils ont été joué à plein volume. Je ne pense pas que l'on puisse trouver un seul instrument acoustique qui fonctionne comme cela. Sans aucun doute nous rendrions ces instruments plus "musicaux" en leur appliquant une enveloppe globale. Et en contrôlant dynamiquement les paramètres d'entrée des opcodes, nous produirions des sons plus que jamais séduisants.
Dans l'instr 113 (figures 1.20 et 1.21), l'opcode linen est utilisé pour contrôler dynamiquement l'amplitude de l'oscillateur, générant une enveloppe AR classique à deux paramètres (Attaque-Relâchement).
 
                                                                        
                                             
Figure 1.20 Diagramme de l'instr 113, ici la sortie d'un opcode contrôle un des arguments d'entrée d'un autre. Nous contrôlons dynamiquement l'amplitude en modifiant l'argument d'amplitude de l'opcode oscil avec la sortie de l'opcode linen.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				113 
                                                                        
                                              				;     SIMPLE  OSCILLATEUR 
     AVEC ENVELOPPE 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k1 
                                                                        
                                              				linen 
                                                                        
                                              				p4,                p7, p3, 
  p8 
                                                                        
                                              				;     p3=dur,  p4=amp,   
   p7=attaque, p8=relâchement 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				oscil 
                                                                        
                                              				k1,                p5, p6 
                                                                        
                                              				;     p5=freq,  p6=table 
     d'onde 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				a1 
                                                                        
                                              				  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.21 Code de l'orchestre pour l'instr 113, un simple oscillateur avec une enveloppe d'amplitude.
Dans l'instr 115 (figures 1.22 et 1.23), l'opcode linen est à nouveau utilisé pour appliquer une enveloppe dynamique de l'amplitude. Mais cette fois l'"enveloppement" est réalisé en multipliant la sortie de l'opcode linen (k1) par la sortie de l'opcode buzz (a1). Cette multiplication est réalisée dans les arguments d'entrée de l'opcode out (k1 * a1). Non seulement nous voyons ici une nouvelle façon d'appliquer une enveloppe à un signal (en le multipliant par un contrôleur), mais nous voyons aussi qu'il est possible d'exécuter des opérations mathématiques avec des variables, où chaque opération a la valeur d'un argument.
Dans la figure 1.22, nous voyons aussi que l'opcode expon est utilisé pour faire évoluer exponentiellement la valeur de p10 vers celle de p11 sur la durée de la note (p3), balayant ainsi le nombre d'harmoniques (des "cosines") que produit buzz. L'effet ressemble à un filtre résonant passe-bas que l'on fermerait progressivement. C'est un moyen simple pour réaliser un contrôle dynamique du timbre.
 
                                                                        
                                             
Figure 1.22 Diagramme de l'instr 115 décrivant un contrôle de l'amplitude par la multiplication de deux sorties, et le contrôle dynamique d'un argument.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				115 
                                                                        
                                              				;    Balayage          Harmonique 
  de  Buzz     avec une Enveloppe 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k1 
                                                                        
                                              				linen 
                                                                        
                                              				p4,                p7, p3, 
  p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k2 
                                                                        
                                              				expon 
                                                                        
                                              				p9,                p3, p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				buzz 
                                                                        
                                              				1,      p5,  k2+1, p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				k1*a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.23 Code de l'orchestre pour l'instr 115, un instrument avec une amplitude dynamique et un contrôle harmonique.
Si vous avez parcouru le Csound Reference Manual, vous avez probablement remarqué que beaucoup d'opcodes, tels que oscil, proposaient une version k-rate et une version a-rate. Dans l'instr 117 (figure 1.24), nous utilisons un opcode linen au taux audio pour générer une enveloppe d'amplitude globale. Pour cela, nous "patchons" la sortie de l'opcode grain dans le paramètre d'amplitude linen (regardez a1 dans la figure 1.25). Cette approche utilise l'opcode linen pour "envelopper" le signal provenant du synthétiseur granulaire. En fait, nous plaçons littéralement le signal dans une "enveloppe" avant de l'envoyer!
 
                                                                        
                                             
Figure 1.24 Diagramme de l'instr 117 avec un contrôle de l'amplitude réalisé en envoyant le signal (a1) dans une enveloppe au taux a-rate (a2).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				117 
                                                                        
                                              				;     Grains envoyés 
        dans une Enveloppe 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k2 
                                                                        
                                              				linseg 
                                                                        
                                              				p5,                p3/2, p9, 
  p3/2, p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k3 
                                                                        
                                              				line 
                                                                        
                                              				p10,                 p3, p11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k4 
                                                                        
                                              				line 
                                                                        
                                              				p12,                 p3, p13 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k5 
                                                                        
                                              				expon 
                                                                        
                                              				p14,                 p3, p15 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k6 
                                                                        
                                              				expon 
                                                                        
                                              				p16,                 p3, p17 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				grain 
                                                                        
                                              				p4,                k2, k3, 
  k4,       k5, k6,             1, p6, 1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			a2 
                                                                        
                                              				linen 
                                                                        
                                              				a1,                
p7,       p3, p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				a2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.25 Code de l'orchestre pour l'instr 117, un instrument de synthèse granulaire avec contrôle dynamique de nombreux paramètres. Notez que la sortie de grain (a1) est "patchée" dans l'argument d'amplitude d'un linen au taux audio, pour envelopper le son dans une amplitude globale.
Enveloppes
Je dois admettre que jeune étudiant en musique électronique, j'étais troublé par l'usage du terme "enveloppe" dans le domaine de l'audio et de la synthèse sonore. Je pensais les "enveloppes" comme des paquets de papier fin dans lesquels vous pouviez glisser une lettre pour un ami, ou un chèque pour la compagnie de téléphone, et ne pus jamais faire tout à fait le lien. Mais l'algorithme utilisé dans l'instr 117 m'a rendu claire la métaphore. J'espère qu'il en est de même pour vous. Ici nous voyons que l'opcode linen "emballe" l'ensemble du signal dans une boîte à la forme singulière (AR), avant de l'envoyer vers la sortie. La figure 1.26 permet de voir autrement ce processus. Tout d'abord, nous voyons un signal audio bipolaire brut. Puis nous voyons une enveloppe unipolaire d'amplitude à quatre segments : attack-decay-sustain-release (ADSR). Puis nous voyons cette enveloppe appliquée au signal audio. Et finalement nous voyons le signal audio bipolaire dont l'amplitude a été modifiée, suivant le "contour" de l'ADSR.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.26 "Enveloppement" d'un signal.
Une autre façon de voir la figure 1.26 serait de considérer que notre signal bipolaire est mis à l'échelle (multiplié) par une enveloppe ADSR unipolaire, qui symmétriquement trace le profil du signal unipolaire. Le signal est ainsi "enveloppé" dans un paquet ADSR. Appliquons ces nouvelles connaissances dans un autre modèle d'instrument.
Dans l'instr 118 (figures 1.27 et 1.28) nous illustrons encore une autre façon d'appliquer une enveloppe à un signal. Cette fois-ci, nous utilisons un oscillateur dont l'argument de fréquence est fixé à 1/p3. Passons à un exemple pratique pour comprendre comment cette expression simple va nous aider à calculer la bonne fréquence qui transformera notre oscillateur périodique en un générateur d'enveloppe "apériodique".
Si la durée de la note est de 10 secondes, et la fréquence de notre oscillateur fixée à 1/10 Hz, "lire" un cycle complet de la table de fonction précisée en p7 prend 10/10 Hz . Ainsi, fixer la fréquence d'un oscillateur à 1 divisé par la durée de la note (1/p3), garantie que le générateur de signal périodique calculera seulement une période, ou lira seulement un cycle de sa f-table durant le cours de chaque note.
 
                                                                        
                                             
Figure 1.27 Diagramme de l'instr 118, un instrument avec un oscillateur comme générateur d'enveloppe.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				118 
                                                                        
                                              				;    Loscil          avec 
  une          Enveloppe Oscil 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k1 
                                                                        
                                              				oscil 
                                                                        
                                              				p4,                1/p3, p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k2 
                                                                        
                                              				expseg 
                                                                        
                                              				p5,                p3/3, p8, 
  p3/3, p9, p3/3,             p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				loscil 
                                                                        
                                              				k1,                k2, p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.28 Code de l'orchestre pour l'instr 118, un instrument qui lit des samples, avec un oscillateur générateur d'enveloppe et une modulation dynamique de la hauteur.
Dans l'instr 118 les fonctions d'enveloppes appelées par p7 (f 6, f 7 et f 8) utilisent GEN7 et GEN5 pour dessiner une variété de profils unipolaires linéaires et exponentiels. Il est important de noter qu'il est illégal d'utiliser une valeur de 0 dans une fonction exponentielle calculée par le sous-programme GEN5 ou l'opcode expseg. Vous remarquerez par conséquent que f 8, qui utilise GEN5, commence et finie avec une valeur de 0.001 à la place de 0.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			f      6 
                                                                        
                                              				0 
                                                                        
                                              				1024 
                                                                        
                                              				7 
                                                                        
                                              				0     10  1 1000 1       14
0 
                                                                        
                                              				;           enveloppe linéaire AR  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			f      7 
                                                                        
                                              				0 
                                                                        
                                              				1024 
                                                                        
                                              				7 
                                                                        
                                              				0     128  1 128 .6      
512 .6 256 0 
                                                                        
                                              				;           enveloppe linéaire  ADSR  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
f      8 
                                                                        
                                              				0 
                                                                        
                                              				1024 
                                                                        
                                              				5 
                                                                        
                                              				.001                 256 1
192       .5 256 .5 64 .001 
                                                                        
                                              				;     enveloppe exponentielle 
        ADSR 
                                                                        
                                              			
Figure 1.29 Fonctions linéaires et exponentielles utilisant GEN5 et GEN7.
La technique employée dans l'instr 118 pour appliquer une enveloppe (l'utilisation d'un oscillateur comme générateur d'enveloppe) a plusieurs avantages. Premièrement, vous pouvez créer une librairie entière de formes d'enveloppe (des "presets"), que vous pourrez ensuite modifier d'une note à l'autre. Deuxièmement, puisque le générateur d'enveloppe est un oscillateur, vous pouvez lire l'enveloppe en boucle, l'"appeler à nouveau" durant le cours de la note pour créer des effets intéressants de modulation d'amplitude de type LFO. Dans l'instr 119 (figure 1.30), p8 détermine le nombre de répétitions effectives durant le cours de la note. Si p8 est fixé à 10 et p3 à 5 secondes, l'instrument "appellera" l'enveloppe 2 fois par seconde (1/5 * 10 = 2). Alors que si la durée de la note était de 1 seconde (p3 = 1), l'enveloppe serait "appelée" 10 fois par seconde ( 1/1 * 10 = 10).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				119 
                                                                        
                                              				;     Rappel de l'enveloppe 
        générée                            par   oscil 
  avec  Foscil 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k1 
                                                                        
                                              				oscil 
                                                                        
                                              				p4,                1/p3 * 
  p8,       p7 
                                                                        
                                              				;     P8= taux de rappel par
durée            de note 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			k2 
                                                                        
                                              				line 
                                                                        
                                              				p11,          
     p3, p12 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			a1 
                                                                        
                                              				foscil 
                                                                        
                                              				k1,           
   p5, p9, p10,       k2, p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				a1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.30 Code de l'orchestre de l'instr 119, un instrument FM avec un "oscillateur-enveloppe" dans lequel p8 détermine la fréquence de "rappel".
Fonctions Unipolaires et Bipolaires
Habituellement nous pensons à un oscillateur comme quelque chose qui produit un son en jouant différentes formes d'onde ou des samples. Cependant, nous avons vu que dans Csound, un oscillateur à lecture de tables peut lire toutes fonctions unipolaires ou bipolaires, et cela à n'importe quelle vitesse. Ce générateur de signal peut être utilisé soit comme une source de contrôle (avec de nouvelles valeurs produites au taux de contrôle kr), soit comme une source audio (avec de nouvelles valeurs produites au taux audio ar). A la différence des synthétiseurs commercialisés, dans Csound la "fonction" d'un opcode est définie par l'usage et par l'utilisateur. Jusqu'ici, nous avons utilisé divers sous-programmes GENS pour calculer des fonctions unipolaires et bipolaires, et il est important de s'assurer que nous comprenons bien leurs différences.
La plupart des formes d'onde audio, comme celles crées par GEN10, sont bipolaires — elles courent symmétriquement au-dessus et au-dessous de 0. D'un autre côté, la plupart des fonctions d'enveloppe, comme celles que nous avons crées en utilisant GEN5 et GEN7, sont unipolaires — elles courent dans une seule direction, généralement au-dessus de 0. Dans Csound, les fonctions bipolaires sont par défaut normalisées sur une plage allant de -1 à +1, et les fonctions unipolaires sont normalisées sur une plage allant de 0 à +1 (figure 1.31).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.31 Une fonction bipolaire (-1 à +1) et une fonction unipolaire (0 à +1).
Si vous souhaitez contourner cette normalisation par défaut des données contenues dans vos fonctions, vous devez faire précéder le numéro du sous-programme GEN par le signe moins (-), comme le montre la figure 1.32 (f 3 et f 4).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			f      1 
                                                                        
                                              				0 
                                                                        
                                              				512 
                                                                        
                                              				10 
                                                                        
                                              				1 
                                                                        
                                              				;    Sinusoïde      
          bipolaire             normalisée  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			f      2 
                                                                        
                                              				0 
                                                                        
                                              				512 
                                                                        
                                              				7 
                                                                        
                                              				0     6  1 500 1 6       0 
                                                                        
                                              				;     Enveloppe unipolaire 
        normalisée 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			f      3 
                                                                        
                                              				0 
                                                                        
                                              				512 
                                                                        
                                              				-10 
                                                                        
                                              				.3       .013  .147      
.026 
                                                                        
                                              				; Somme          de sinusoïdes 
          non-normalisées 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
f      4 
                                                                        
                                              				0 
                                                                        
                                              				512 
                                                                        
                                              				-7 
                                                                        
                                              				440                256 220 
  256       440 
                                                                        
                                              				;     Enveloppe unipolaire 
        non-normalisée 
                                                                        
                                              			
Figure 1.32 Deux fonctions normalisées (f 1 et f 2) et deux fonctions non-normalisées (f 3 et f 4).
Exercises pour l'Etude 3
• Rendez les fichiers "orchestre" et "partition" : etude3.orc & etude3.sco.
• Jouez et écoutez les particularités sonores et les formes d'enveloppes de chaque note et instrument.
• Modifiez le fichier "orchestre" et renommez les variables de telle sorte que les noms soient plus explicites. Renommez par exemple toutes les variables a1 asig1 , et les variables k1 kenv1.
• Dans le Csound Reference Manual, cherchez les nouveaux opcodes utilisés dans les instr 113 — 119, et lisez leur documentation :
 			                                   
                                                                        
                                                                        
                                                                        
                                                                        
                       
  
                                                                        
                                              				
                                                                        
                                                         
                                                                        
                                              			
                                                                        
                                              					 
                                                                        
                                              				kr 
                                                                        
                                              					linen 
                                                                        
                                              					kamp, 
                                                                        
                                              					irise, 
                                                                        
                                              					idur, 
                                                                        
                                              					idec 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					linen 
                                                                        
                                              					xamp, 
                                                                        
                                              					irise, 
                                                                        
                                              					idur, 
                                                                        
                                              					idec 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				kr 
                                                                        
                                              					line 
                                                                        
                                              					ia, 
                                                                        
                                              					idur1, 
                                                                        
                                              					ib 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				kr 
                                                                        
                                              					expon 
                                                                        
                                              					ia, 
                                                                        
                                              					idur1, 
                                                                        
                                              					ib 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                                             
                                                                        
                                              					 
                                                                        
                                              				kr 
                                                                        
                                              					linseg 
                                                                        
                                              					ia, 
                                                                        
                                              					idur1, 
                                                                        
                                              					ib[, 
                                                                        
                                              					idur2, 
                                                                        
                                              					ic[...]] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              			                       
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                        
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
  kr 
                                                                        
                                              					expseg 
                                                                        
                                              					ia, 
                                                                        
                                              					idur1, 
                                                                        
                                              					ib[, 
                                                                        
                                              					idur2, 
                                                                        
                                              					ic[...]] 
                                                                        
                                              				
• Modifiez le temps d'attaque (p7) et le temps de relâchement (p8) de l'opcode linen dans les instr 113 —117.
• Ajoutez une enveloppe de hauteur pour les instr 113, 114 et 115 avec l'opcode linseg , et ajoutez sa sortie à p5.
• Expérimentez divers contrôles dynamiques pour les paramètres de l'opcode grain dans l'instr 117.
• Substituez les enveloppes générées avec oscil par des enveloppes générées avec linen dans les instr 113 — 117.
• Utilisez GEN5 et GEN7 pour créer des fonctions d'enveloppes additionnelles. Essayez d'imiter l'attaque caractéristique d'un piano — f 9, d'une mandoline — f 10, d'un tuba — f 11, d'un violon — f 12 et d'une voix d'homme chantant un "la" — f 13. Appliquez ces enveloppes aux versions des instr 113 — 117 nouvellement créés.
• En suivant l'exemple des diagrammes d'instruments que vous avez étudiés jusque là, dessiner le shéma des instr 112, 113, 114 et 119.
Création sonore Etude 4 : Mixage, Chorus, Trémolo et Vibrato
Maintenant, nous allons améliorer la qualité de nos instruments en mixant et en "désaccordant" légèrement nos oscillateurs, pour créer un riche effet de chorus. Les opcodes vont se rejoindre, créant un algorithme de synthèse hybride qui ne ressemble à aucun des algorithmes proposés sur le marché. Et nous allons animer nos instruments par l'adjonction de modulations d'amplitude et de fréquence à des taux audios et sub-audios (AM et FM). Nous allons employer aussi plusieurs opcodes de représentation graphique implémentés dans Csound, pour visualiser ces enveloppes temporelles et spectrales complexes.
Dans l'instr 120 (figures 1.33 et 1.34), nous mixons ensemble trois oscillateurs "désaccordés" (ou "détunés") qui utilisent tous l'opcode envlpx pour appliquer une enveloppe d'amplitude. L'opcode display dessine cette enveloppe sur l'écran selon une fréquence fixée par l'utilisateur. Ici, cette fréquence correspond à la longueur de chaque note (p3).
 
                                                                        
                                             
Figure 1.33 Diagramme de l'instr 120 illustrant trois oscillateurs "détunés", avec une enveloppe commune et une représentation graphique.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				120 
                                                                        
                                              				;     SIMPLE  CHORUS 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              				;           BLOC D'INITIALISATION  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				cpspch(p5) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifun 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatkfun 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				envlpx 
                                                                        
                                              				iamp,                     
 iatk,       idur,       irel,  iatkfun,      .7,    .01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig3 
                                                                        
                                              				oscil 
                                                                        
                                              				kenv,                 ifrq*.99, 
        ifun 
                                                                        
                                              				;           BLOC DE       SYNTHESE  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig2 
                                                                        
                                              				oscil 
                                                                        
                                              				kenv,                 ifrq*1.01, 
        ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig1 
                                                                        
                                              				oscil 
                                                                        
                                              				kenv,                 ifrq, 
  ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			amix 
                                                                        
                                              				= 
                                                                        
                                              				asig1+asig2+asig3 
                                                                        
                                              				;     MIXAGE 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out  
                                                                        
                                              				amix 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				display 
                                                                        
                                              				kenv,                 idur 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.34 Code de l'orchestre pour l'instr 120, un instrument "chorussant" dans lequel les p-fields portent le nom de variables données à i-time. Et un envlpx, représenté graphiquement, est utilisé comme enveloppe d'amplitude commune.
Bien que l'instr 120 soit encore assez simple de construction, il préfigure la façon dont sont organisés et présentés les instruments plus complexes dans Csound. Dans la figure 1.34, vous pouvez voir que les variables sont initialisées au début de l'instrument dans le bloc d'initialisation , avec des noms qui doivent nous aider à identifier leurs fonctions (le style de codage est ainsi personnalisé). Vous pouvez clairement lire que le temps d'attaque est assigné à iatk, avec la valeur de p7 (iatk = p7), et que le temps de relâchement est assigné à irel, avec la valeur de p9 (irel = p9). Et plus important, en regardant où ils sont "patchés" dans l'opcode envlpx , vous pouvez voir et vous rappeler quels arguments correspondent à ces paramètres particuliers. La lecture de l'opcode en est facilitée.
Notez aussi que dans Csound le signe égal (=) possède une fonction d'attribution. C'est en réalité un opcode! Attribuer des noms de variables clairs au temps d'initialisation i-time est hautement recommandé, l'instrument gagnant en lisibilité.
Fusion Spectrale
Nous allons examiner maintenant l'instr 122 (figures 1.35 et 1.36). Cet instrument utilise des opcodes expon indépendants pour dynamiser le spectre fréquentiel des opcodes foscil et buzz. Ces derniers sont "fusionnés" (dé-formés/mixés/transfigurés) avec l'attaque de l'opcode pluck, avec pour résultat la production d'un beau timbre hybride. Cet instrument utilise l'opcode dispfft pour calculer et représenter graphiquement la FFT (Fast Fourier Transform), de 512 points et remise à jour toutes les 250 millisecondes, d'un signal complexe. Bien que les opcodes display et dispfft soient une merveilleuse façon de jeter un regard sur le fonctionnement de vos instruments, ils ont un impact significatif sur les performances de votre système. Il est donc important de penser à "mettre en commentaires" ces opcodes display et dispfft quand vous utilisez vos instruments pour produire de la musique. Ils ont un caractère informatif et pédagogique, mais sont aussi de réels outils de correction d'erreurs. Vous devez les considérer comme tel.
 
                                                                        
                                             
Figure 1.35 Diagramme de l'instr 122 illustrant la représentation graphique d'une FFT de 3 opcodes mixés (fondus) et "joints ensemble" (dé-formés).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				122 
                                                                        
                                              				;     Simple  Fusion Spectrale  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				cpspch(p5) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifun 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatkfun 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			index1 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			index2 
                                                                        
                                              				= 
                                                                        
                                              				p11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				envlpx 
                                                                        
                                              				iamp,                 iatk, 
  idur,       irel,             iatkfun,               .7, .01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kmodswp 
                                                                        
                                              				expon 
                                                                        
                                              				index1,                 idur, 
        index2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kbuzswp 
                                                                        
                                              				expon 
                                                                        
                                              				20,                idur, 1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig3 
                                                                        
                                              				foscil 
                                                                        
                                              				kenv,                 ifrq, 
  1,       1, kmodswp,             ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig2 
                                                                        
                                              				buzz 
                                                                        
                                              				kenv,                 ifrq*.99, 
        kbuzswp+1,             ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig1 
                                                                        
                                              				pluck 
                                                                        
                                              				iamp,                 ifrq*.5, 
        ifrq, 0,             1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			amix 
                                                                        
                                              				= 
                                                                        
                                              				asig1+asig2+asig3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				amix 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				dispfft 
                                                                        
                                              				amix,                 .25, 
  1024 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.36 Code de l'orchestre pour l'instr 122, un instrument qui fusionne trois tehniques de synthèse — pluck, foscil, et buzz.
Plutôt que de simplement mixer ou fusionner les opcodes comme nous l'avons fait pour les instruments 120 et 122, une autre approche populaire consiste à moduler un opcode audio avec la fréquence et l'amplitude d'un autre. Par exemple dans l'instr 124 (figures 1.37 et 1.38), un oscil au taux a-rate (asig) a son amplitude modulée par la sortie d'un autre oscil au taux a-rate (alfo) dont la fréquence est dynamiquement modifiée par l'opcode line et dont l'amplitude est contrôlée par un expon.
 
                                                                        
                                             
Figure 1.37 Diagramme de l'instr 124, un instrument dont l'amplitude est modulée dynamiquement.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				124 
                                                                        
                                              				;                Modulation d'Amplitude par un oscil 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				cpspch(p5) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifun 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatkfun 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodp1 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodp2 
                                                                        
                                              				= 
                                                                        
                                              				p11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodfr1 
                                                                        
                                              				= 
                                                                        
                                              				p12 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodfr2 
                                                                        
                                              				= 
                                                                        
                                              				p13 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodfun 
                                                                        
                                              				= 
                                                                        
                                              				p14 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				envlpx 
                                                                        
                                              				iamp,                 iatk, 
  idur,       irel,             iatkfun,               .7, .01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kmodpth 
                                                                        
                                              				expon 
                                                                        
                                              				imodp1,                 idur, 
        imodp2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kmodfrq 
                                                                        
                                              				line 
                                                                        
                                              				cpspch(imodfr1),          
            idur,             cpspch(imodfr2) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			alfo 
                                                                        
                                              				oscil 
                                                                        
                                              				kmodpth,                 kmodfrq, 
        imodfun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig 
                                                                        
                                              				oscil 
                                                                        
                                              				alfo,                 ifrq, 
  ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				asig*kenv 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.38 Code de l'orchestre pour l'instr 124, un instrument dont l'amplitude est modulée dynamiquement avec une enveloppe d'amplitude indépendante et un LFO variable.
Cette simple combinaison d'oscillateurs peut produire une grande variété de timbres harmoniques et inharmoniques évoluant dynamiquement.
Dans l'instrument suivant, le 126 (figures 1.39 et 1.40), nous présentons un simple instrument-vibrato qui utilise un opcode linseg pour envelopper le vibrato. Ainsi, le vibrato paraît plus naturel.
 
                                                                        
                                             
Figure 1.39 Diagramme de l'instr 126, un instrument de synthèse additive avec un vibrato "enveloppé".
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				126 
                                                                        
                                              				;     Simple  Vibrato "enveloppé"  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				cpspch(p5) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ivibdel 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imoddpt 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodfrq 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iharm 
                                                                        
                                              				= 
                                                                        
                                              				p11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				linen 
                                                                        
                                              				iamp,                 iatk, 
  idur,       irel 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kvibenv 
                                                                        
                                              				linseg 
                                                                        
                                              				0,      ivibdel,  1,      
idur-ivibdel, .3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			klfo 
                                                                        
                                              				oscil 
                                                                        
                                              				kvibenv*imoddpt,          
            imodfrq,             1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig 
                                                                        
                                              				buzz 
                                                                        
                                              				kenv,                 ifrq+klfo, 
        iharm,             1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				asig 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.40 Code de l'orchestre pour l'instr 126, un intrument buzz avec un vibrato "enveloppé".
Même ces instruments, d'une conception relativement simple, peuvent produirent une palette de couleurs incroyablement riche et diverse. Prenez le temps de les explorer et de les modifier.
Convertisseurs de valeur
Dans le "bloc" d'initialisation de l'instr 120 (figure 1.34), et cela est valable pour l'ensemble des instruments de cette étude, vous avez peut-être remarqué que deux des convertisseurs de valeurs de Csound, ampdb et cpspch étaient utilisés (iamp = ampdb(p4) et ifrq = cpspch(p5)). Jusqu'à présent, nous avions employés des fréquences exprimées en Hz et des amplitudes linéaires. Ces convertisseurs nous donnent la possiblité d'exprimer ces données de fréquence et d'amplitude dans un format plus familier et intuitif.
Le convertisseur cpspch va lire un chiffre en notation d'octaves et demi-tons, et le convertir en Hz (soit, 8.09 = A4 = 440 Hz). C'est un type de notation dans lequel les octaves sont représentées par des nombres entiers (8.00 = C moyen ou C4, 9.00 = C5, 10.00 = C6, etc.) et les 12 tempéraments égaux de la gamme par des chiffres à deux décimales qui suivent l'octave (8.01 = C#4, 8.02 = D4, 8.03 = D#4, etc.). La gamme présentée dans la figure 1.41 devrait vous rendre explicite ce système.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			NOTE                 # 
                                                                        
                                              				Hertz                 (Hz) 
                                                                        
                                              				CPSPCH 
                                                                        
                                              				NUMERO   DE NOTE MIDI 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			C4 
                                                                        
                                              				261.626 
                                                                        
                                              				8.00 
                                                                        
                                              				60 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			C#4 
                                                                        
                                              				277.183 
                                                                        
                                              				8.01 
                                                                        
                                              				61 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			D4 
                                                                        
                                              				293.665 
                                                                        
                                              				8.02 
                                                                        
                                              				62 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			D#4 
                                                                        
                                              				311.127 
                                                                        
                                              				8.03 
                                                                        
                                              				63 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			E4 
                                                                        
                                              				329.628 
                                                                        
                                              				8.04 
                                                                        
                                              				64 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			F4 
                                                                        
                                              				349.228 
                                                                        
                                              				8.05 
                                                                        
                                              				65 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			F#4 
                                                                        
                                              				369.994 
                                                                        
                                              				8.06 
                                                                        
                                              				66 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			G4 
                                                                        
                                              				391.955 
                                                                        
                                              				8.07 
                                                                        
                                              				67 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			G#4 
                                                                        
                                              				415.305 
                                                                        
                                              				8.08 
                                                                        
                                              				68 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			A4 
                                                                        
                                              				440.000 
                                                                        
                                              				8.09 
                                                                        
                                              				69 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			A#4 
                                                                        
                                              				466.164 
                                                                        
                                              				8.10 
                                                                        
                                              				70 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			B4 
                                                                        
                                              				493.883 
                                                                        
                                              				8.11 
                                                                        
                                              				71 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
C5 
                                                                        
                                              				523.251 
                                                                        
                                              				9.00 
                                                                        
                                              				72 
                                                                        
                                              			
Figure 1.41 Une gamme chromatique commençant au C moyen, avec ses valeurs exprimées en Hz et en notation d'octaves et demi-tons.
Par l'ajout de décimales supplémentaires, il est possible de spécifier des micro-intervalles (figure 1.42).
Comme vous pouvez le voir, cpspch assure la conversion des valeurs au format pch dans le format cps (cycles-par-seconde). Si vous écrivez de la musique tonale ou microtonale avec Csound, vous pourrez trouver ces convertisseurs de valeurs particulièrement utiles.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			NOTE                 # 
                                                                        
                                              				CPSPCH 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			C4 
                                                                        
                                              				8.00 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			C4+ 
                                                                        
                                              				8.005 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			C#4 
                                                                        
                                              				8.01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			C#4+ 
                                                                        
                                              				8.015 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			D4 
                                                                        
                                              				8.02 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			D4+ 
                                                                        
                                              				8.025 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			D#4 
                                                                        
                                              				8.03 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			D#4+ 
                                                                        
                                              				8.035 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			E4 
                                                                        
                                              				8.04 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			E4+ 
                                                                        
                                              				8.045 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			F4 
                                                                        
                                              				8.05 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			F4+ 
                                                                        
                                              				8.055 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			F#4 
                                                                        
                                              				8.06 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			F#4+ 
                                                                        
                                              				8.065 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			G4 
                                                                        
                                              				8.07 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			G4+ 
                                                                        
                                              				8.075 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			G#4 
                                                                        
                                              				8.08 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			G#4+ 
                                                                        
                                              				8.085 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			A4 
                                                                        
                                              				8.09 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			A4+ 
                                                                        
                                              				8.095 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			A#4 
                                                                        
                                              				8.10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			A#4+ 
                                                                        
                                              				8.105 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			B4 
                                                                        
                                              				8.11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			B4+ 
                                                                        
                                              				8.115 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
C5 
                                                                        
                                              				9.00 
                                                                        
                                              			
Figure 1.42 Une octave divisée en tempéraments égaux de quarts de tons, utilisant le convertisseur de valeurs cpspch.
De même, le convertisseur de valeurs ampdb lira une valeur exprimée en décibel, et la convertira en une valeur d'amplitude brute (figure 1.43).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			ampdb(42) 
                                                                        
                                              				= 
                                                                        
                                              				125 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(48) 
                                                                        
                                              				= 
                                                                        
                                              				250 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(54) 
                                                                        
                                              				= 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(60) 
                                                                        
                                              				= 
                                                                        
                                              				1000 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(66) 
                                                                        
                                              				= 
                                                                        
                                              				2000 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(72) 
                                                                        
                                              				= 
                                                                        
                                              				4000 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(78) 
                                                                        
                                              				= 
                                                                        
                                              				8000 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(84) 
                                                                        
                                              				= 
                                                                        
                                              				16000 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ampdb(90) 
                                                                        
                                              				= 
                                                                        
                                              				32000 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
ampdb(96) 
                                                                        
                                              				= 
                                                                        
                                              				64000 
                                                                        
                                              				;    ATTENTION          : 
   ECHANTILLONS HORS             DE LA PLAGE   DE CONVERSION!!! 
                                                                        
                                              			
Figure 1.43 Conversion d'amplitudes avec ampdb.
Bien que l'échelle logarithmique des décibels (dB) soit perçue comme linéaire, vous devez noter que Csound n'"utilise" pas vraiment les dB. Le convertisseur ampdb applique une conversion directe, sans mise à l'échelle. Malheureusement, vous aurez à passer beaucoup de temps pour ajuster, normaliser, et mettre à l'échelle vos niveaux d'amplitude même si vous utilisez le convertisseur ampdb, car la conversion est réalisée avant que le signal ne soit rendu.
Exercises pour l'Etude 4
• Rendez les fichiers "orchestre" et "partition" : etude4.orc & etude4.sco.
• Jouez 
                et écoutez les timbres dynamiques et              
                les effets de modulations de chaque note et instrument. 
                                                                        
                     
• Modifiez l'instr 120 en "mettant en choeur" (effet de chorus) trois opcodes foscil à la place des trois opcodes oscil.
• Comme dans l'instr 126, ajoutez un vibrato "enveloppé" aux trois foscil que vous venez de créer dans l'instr 120.
• Dessinez le diagramme de l'instr 121 (qui n'a pas été étudié dans cette section), et ajoutez un vibrato "enveloppé", et placez un de vos samples dans ce synthétiseur à table d'ondes.
• Modifiez l'instr 122 pour en faire un synthétiseur hybride totalement différent. Peut-être pouvez-vous ajouter un grain ou un loscil?
• Dessinez le diagramme de l'instr 123 (qui n'a pas été étudié dans cette section), et changez les rythmes et les hauteurs. Essayez une modulation au taux audio. Pour finir, réalisez et utilisez vos propres fonctions de modulation d'amplitudes.
• Modifiez l'instr 124 en réduisant le "balayage" des fréquences. Ajoutez un "chorus" et un vibrato "enveloppé".
• Dessinez le diagramme de l'instr 125 (qui n'a pas été étudié dans cette section). Changez la fréquence et la profondeur de modulation en utilisant les fonctions présentes. Modulez quelques-uns de vos propres samples.
• Modifiez l'instr 126 de telle sorte que ces "voix synthétiques" chantent des mélodies et des harmonies microtonales.
• Dessinez le diagramme de l'instr 127 (qui n'a pas été étudié dans cette section). Amusez-vous à le modifier avec chacune des techniques et morceaux de code développés et maîtrisés jusqu'ici.
• Dans le Csound Reference Manual, cherchez les nouveaux opcodes convoqués dans les instr 120 — 127 :
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			kr 
                                                                        
                                              				envlpx 
                                                                        
                                              				kamp,                 irise, 
        idur, idec,             ifn, iatss,                iatdec[, ixmod] 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				print 
                                                                        
                                              				iarg[,                 iarg, 
  ...] 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				display 
                                                                        
                                              				xsig,                 iprd[, 
  inprds][, iwtflg] 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				dispfft 
                                                                        
                                              				xsig,                 iprd, 
  iwsiz[,       iwtyp][,             idbouti][,                iwtflg] 
                                                                        
                                              			
• Créez un nouvel ensemble de fonctions d'attaque envlpx , et utilisez-les dans tous les instruments.
• Ajoutez les opcodes print, display et dispfft aux instr 123 — 127 (Mais pensez à les "mettre en commentaire" lorsque votre préoccupation est orientée sur la production du signal sonore).
Un peu de théorie sur le filtrage
Dans la prochaine étude de création sonore, nous commencerons à explorer quelques opcodes de filtrage implémentés dans Csound. Au préalable, il pourrait être utile d'examiner certains principes de base du filtrage. Les quatres catégories de filtres les plus communes sont : le passe-bas, le passe-haut, le passe-bande, et le coupe-bande. Nous voyons dans la figure 1.44 un signal composé de 12 partiels harmoniques de même intensité (a), d'abord traité par un filtre passe-bas 1 pôle (b), un filtre passe-haut 1 pôle (c), un filtre passe-bande 2 pôles (d), et un filtre coupe-bande 2 pôles (e). Les verticales en pointillées sont dans la bande rejetée du signal, et les verticales continues sont dans la bande passante. Sur chacune des courbes d'enveloppe spectrale, la fréquence de coupure est la fréquence à partir de laquelle le filtre applique une atténuation de -3 dB.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.44 Un signal source (a) modifié par quatres filtres communs : tone — un filtre passe-bas 1 pôle (b), atone — un filtre passe-haut 1 pôle (c), reson — un filtre passe-bande 2 pôles (d) et areson — un filtre coupe-bande 2 pôles (e).
Dans Csound ces filtres correspondent aux opcodes tone (b), atone (c), reson (d) et areson (e). Remarquez que la ligne pointillée horizontale à -3 dB indique la fréquence de coupure du filtre. Pourquoi -3 dB? La pente du filtre étant en réalité progressive, la fréquence de coupure d'un filtre (fc) est située "quelque part sur la courbe", et a été définie comme le point, dans cette succession de fréquences, où la bande passante est atténuée de -3 dB.
Création Sonore Etude 5: Bruit, Filtres, Délais et Flangers
Ce nouvel ensemble d'instruments utilise plusieurs modificateurs de signal implémentés dans Csound, en parallèle ou en série, pour façonner et transformer un bruit et des tables d'ondes. Dans l'instr 128 (figures 1.45 et 1.46), nous filtrons dynamiquement un "bruit blanc" produit par l'opcode rand. Les opcodes expon et line sont utilisés pour modifier de manière indépendante la fréquence de coupure et la largeur de bande du filtre passe-bande 2 pôles reson. De plus, l'opcode expseg applique une enveloppe d'amplitude globale au signal. Cette enveloppe est représentée graphiquement par l'opcode display.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.45 Diagramme de l'instr 128, un instrument générateur de bruit passé à travers un filtre passe-bande.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				128 
                                                                        
                                              				;     Bruit Passé à
Travers Un           Filtre   Passe-Bande 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				p4 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			icf1 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			icf2 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ibw1 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ibw2 
                                                                        
                                              				= 
                                                                        
                                              				p11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				expseg 
                                                                        
                                              				.01,iatk,iamp,idur/6,iamp*.4,idur(iatk+irel+idur/6),iamp*.6,irel,.01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			anoise 
                                                                        
                                              				rand 
                                                                        
                                              				ifrq 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kcf 
                                                                        
                                              				expon 
                                                                        
                                              				icf1,                 idur, 
  icf2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kbw 
                                                                        
                                              				line 
                                                                        
                                              				ibw1,                 idur, 
  ibw2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt 
                                                                        
                                              				reson 
                                                                        
                                              				anoise,                 kcf, 
  kbw, 2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				afilt*kenv 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				display 
                                                                        
                                              				kenv,                 idur 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.46 Code de l'orchestre pour l'instr 128, un instrument générateur de bruit passé à travers un filtre passe-bande, avec une fréquence de coupure et une largeur de bande variables.
Un Réseau De Filtres En Cascade
De l'instr 129 à 132 (figure 1.47), un bruit blanc (rand) est passé à travers une série de filtres passe-bas 1 pôle (tone). La contribution significative de chaque pôle supplémentaire doit apparaître clairement dans cette série d'exemples. En fait, chaque pôle accroît la pente du filtre de 6 dB par octave à partir de la fréquence de coupure. Un motif de filtres en cascade comme celui-ci accentue proportionnellement la raideur de la pente à chaque tone ajouté, produisant ainsi un filtre plus "efficace". Avec notre motif en cascade, l'instr 129 aura une pente correspondant à une atténuation de 6 dB par octave; l'instr 130 aura une pente de 12 dB par octave; l'instr 131 aura une pente de 18 dB par octave; et l'instr 132 aura une pente de 24 dB par octave. L'opcode dispfft montrera clairement, pour chaque instrument, l'effet progressif de ce filtrage sur le spectre du bruit.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				129 
                                                                        
                                              				;    Filtre          Passe-Bas 
        1 Pôle 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			anoise 
                                                                        
                                              				rand 
                                                                        
                                              				ifrq 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt 
                                                                        
                                              				tone 
                                                                        
                                              				anoise,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				dispfft 
                                                                        
                                              				afilt,                 idur, 
  4096 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				130 
                                                                        
                                              				;           Filtre        
          Passe-Bas 2 Pôles 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			anoise 
                                                                        
                                              				rand 
                                                                        
                                              				ifrq 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt2 
                                                                        
                                              				tone 
                                                                        
                                              				anoise,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt1 
                                                                        
                                              				tone 
                                                                        
                                              				afilt2,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				dispfft 
                                                                        
                                              				afilt1,                 idur, 
        4096 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				131 
                                                                        
                                              				; Filtre        
                     Passe-Bas  3 Pôles  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			anoise 
                                                                        
                                              				rand 
                                                                        
                                              				ifrq 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt3 
                                                                        
                                              				tone 
                                                                        
                                              				anoise,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt2 
                                                                        
                                              				tone 
                                                                        
                                              				afilt3,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt1 
                                                                        
                                              				tone 
                                                                        
                                              				afilt2,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				dispfft 
                                                                        
                                              				afilt1,                 idur, 
        4096 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				132 
                                                                        
                                              				; Filtre        
                     Passe-Bas  4 pôles 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			anoise 
                                                                        
                                              				rand 
                                                                        
                                              				ifrq 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt4 
                                                                        
                                              				tone 
                                                                        
                                              				anoise,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt3 
                                                                        
                                              				tone 
                                                                        
                                              				afilt4,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt2 
                                                                        
                                              				tone 
                                                                        
                                              				afilt3,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			afilt1 
                                                                        
                                              				tone 
                                                                        
                                              				afilt2,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				dispfft 
                                                                        
                                              				afilt1,                 idur, 
        4096 
                                                                        
                                              			
Figure 1.47 Extraits du code de l'orchestre pour les instr 129 — 132, un bruit blanc passé à travers une cascade de filtres passe-bas 1 pôle.
Représentations Graphiques
Depuis quelques exemples déjà, nous utilisons les opcodes display et dispfft pour visualiser les signaux. Mais que voyons nous? Et en quoi ces opcodes sont-ils différents les uns des autres?
Comme vous le savez, les signaux peuvent être représentés soit dans le domaine temporel, soit dans le domaine fréquentiel. En fait, ce sont des représentations complémentaires illustrant l'évolution d'un signal en amplitude et en fréquence au cours du temps. L'opcode display dessine les signaux dans le domaine temporel (sur un graphique "amplitude versus temps"), alors que l'opcode dispfft dessine les signaux dans le domaine fréquentiel en utilisant la méthode FFT (Fast Fourier Transform). Les deux nous permettent de spécifier la fréquence de la mise à jour de la représentation, et ainsi de regarder l'évolution d'un signal sur la durée d'une note, à la fois dans le domaine temporel et fréquentiel. Nous avons ainsi utilisé display dans l'instr 128 pour regarder la forme de l'amplitude d'enveloppe expseg, et voir la façon dont cette amplitude variait au cours de la note.
Dans les instr 129 — 132 nous utilisons l'opcode dispfft pour regarder la façon dont les fréquences sont "atténuées" par notre réseau de filtres. En spécifiant une valeur de 4096 pour la FFT, nous divisons la plage des fréquences en 2048 boîtes de 21.5 Hz chacune (44100/2048 = 21.533). Mais nous aurions pu choisir de diviser le spectre en 8 boîtes (avec une largeur de 5512 Hz chacune), ou toute autre valeur jusqu'à 2048 boîtes (avec une largeur de 21.5 Hz chacune). Nous continuerons à utiliser ces opcodes pour regarder dans les domaines temporel et fréquentiel les caractéristiques des sons que nos instruments produisent. L'opcode dispfft nous aidera en particulier à mieux comprendre l'effet produit par les différents filtres de Csound sur les signaux ainsi traités.
Les filtres tone et reson que nous avons utilisés jusqu'à présent étaient parmi les premiers implémentés dans Csound. Ils sont remarquables pour leur efficacité (ils calculent vite), et pour leur instabilité (ils "explosent"). De fait, il a toujours été de bon conseil de patcher la sortie de ces filtres dans l'opcode balance afin de garder les échantillons hors de la plage de conversion sous contrôle.
Au cours des années, cependant, plusieurs nouveaux filtres ont été ajoutés au langage Csound. Au début de la synthèse analogique, ce sont les filtres qui définissaient le son de ces instruments "classiques" si rares et si convoités aujourd'hui. La famille des filtres Butterworth (butterlp, butterhp, butterbp et butterbr) sonne très bien, et prend de plus en plus de place dans les designs d'instruments. Cela s'explique en partie par le fait que les filtres Butterworth possèdent : plus de pôles (ils sont plus raides et plus efficaces dans le filtrage), une réponse en fréquence plate dans le passe-bande (ils sont particuièrement propres et lisses), et ils sont nettement plus stables (vous n'avez pas à vous inquiéter autant des échantillons hors de la plage de conversion). Dans l'instr 133 (figures 1.48 et 1.49), nous utilisons des filtres montés en parallèle, un butterbp 4 pôles et un butterlp 4 pôles, pour modéliser le "classique" filtre résonant passe-bas présent dans la plupart des synthétiseurs analogiques de première génération.
 
                                                                        
                                             
Figure 1.48 Diagramme de l'instr 133, un butterbp et un butterlp dans une configuration parallèle, produisant un "classique" filtre résonant passe-bas.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				133 
                                                                        
                                              				;     Filtre Résonant 
        Passe-Bas 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			icut1 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			icut2 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iresgn 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kcut 
                                                                        
                                              				expon 
                                                                        
                                              				icut1,                 idur, 
  icut2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			aplk 
                                                                        
                                              				pluck 
                                                                        
                                              				iamp,                 ifrq, 
  ifrq,       0, 1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			abpf 
                                                                        
                                              				butterbp 
                                                                        
                                              				aplk,                 kcut, 
  kcut*.2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			alpf 
                                                                        
                                              				butterlp 
                                                                        
                                              				aplk,                 kcut 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			amix 
                                                                        
                                              				= 
                                                                        
                                              				alpf+(abpf*iresgn) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				amix 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				dispfft 
                                                                        
                                              				amix,                 idur, 
  1024 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.49 Code de l'orchestre pour l'instr 133, un "classique" design de filtre résonant passe-bas.
Comme vous pouvez le voir et l'entendre dans l'ensemble des exemples précédents, le contrôle dynamique des paramètres des opcodes de filtrage, combinés en série ou en parallèle, ouvre la porte à un vaste champ de possibilités de création sonore par synthèse soustractive.
Un Résonateur-Echo
Tournons nous à présent vers un autre groupe de modificateurs de signal de Csound — comb et vdelay.
Un filtre comb est essentiellement une ligne de retard avec rebouclage (figure 1.50). Comme vous pouvez le voir, le signal pénètre la ligne de retard, et sa sortie est retardée en fonction de la longueur de la ligne (25 millisecondes dans ce cas). Quand il atteint la sortie, il est réinjecté dans l'entrée, après avoir été multiplié par un facteur gain.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.50 Graphique d'un filtre comb et sa réponse en fréquences.
Le temps nécessaire au signal pour faire un tour complet avant d'être réinjecté dans l'entrée est appelé le temps de boucle. Dans l'instr 135 (figures 1.51, 1.52 et 1.53), un opcode diskin est utilisé pour lire et transposer un fichier audio. Ce signal est passé ensuite dans un filtre comb. Lorsque le temps de boucle est long, nous percevons des échos discrets, mais lorsque le temps de boucle est court, le filtre comb fonctionne davantage comme un résonateur. Comme il est montré dans la figure 1.50, la réponse en fréquences d'un filtre comb est un train d'impulsions espacées régulièrement dans le temps, séparées par le temps de boucle. La fréquence résonante de ce filtre est donc égale à 1/temps de boucle. Dans l'instr 135 elle est spécifiée en millisecondes. En commentaires, dans la partition, vous verrez les fréquences résonantes (spécifiées en Hz) produites par les différents temps de boucle (spécifiés en millisecondes).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.51 Diagramme de l'instr 135, un fichier audio lu directement avec diskin sans passer par une table de fonction, et un filtre comb pour retarder ou faire résoner le signal.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				135 
                                                                        
                                              				;     DISKIN  AVEC       ECHO-RESONATEUR 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				p4 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irvt 
                                                                        
                                              				= 
                                                                        
                                              				p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iloopt 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				linen 
                                                                        
                                              				iamp,                 .01, 
  idur,       .01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ain 
                                                                        
                                              				diskin 
                                                                        
                                              				"hellorcb.aif",           
     1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			acomb 
                                                                        
                                              				comb 
                                                                        
                                              				ain*kenv,                 irvt,
      iloopt,             0 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				ain+acomb 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.52 Code de l'orchestre pour l'instr 135, un instrument "écho-résonateur" utilisant l'opcode comb.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				gain 
                                                                        
                                              				temps              de boucle 
                                                                        
                                              				fréquence résonante  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     135 
                                                                        
                                              				0 
                                                                        
                                              				5 
                                                                        
                                              				.4 
                                                                        
                                              				10 
                                                                        
                                              				.5 
                                                                        
                                              				;     1/.5 
                                                                        
                                              				= 
                                                                        
                                              				2     Hz 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     135 
                                                                        
                                              				5 
                                                                        
                                              				5 
                                                                        
                                              				.3 
                                                                        
                                              				5 
                                                                        
                                              				.25 
                                                                        
                                              				;     1/.25 
                                                                        
                                              				= 
                                                                        
                                              				4     Hz 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     135 
                                                                        
                                              				10 
                                                                        
                                              				5 
                                                                        
                                              				.3 
                                                                        
                                              				5 
                                                                        
                                              				.125 
                                                                        
                                              				;     1/.125 
                                                                        
                                              				= 
                                                                        
                                              				8     Hz 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     135 
                                                                        
                                              				15 
                                                                        
                                              				5 
                                                                        
                                              				.2 
                                                                        
                                              				2 
                                                                        
                                              				.0625 
                                                                        
                                              				;     1/.0625 
                                                                        
                                              				= 
                                                                        
                                              				16       Hz 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     135 
                                                                        
                                              				20 
                                                                        
                                              				5 
                                                                        
                                              				.2 
                                                                        
                                              				2 
                                                                        
                                              				.03125 
                                                                        
                                              				;     1/.03125 
                                                                        
                                              				= 
                                                                        
                                              				32       Hz 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     135 
                                                                        
                                              				25 
                                                                        
                                              				5 
                                                                        
                                              				.2 
                                                                        
                                              				2 
                                                                        
                                              				.015625 
                                                                        
                                              				;     1/.015625 
                                                                        
                                              				= 
                                                                        
                                              				64       Hz 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i     135 
                                                                        
                                              				30 
                                                                        
                                              				5 
                                                                        
                                              				.04 
                                                                        
                                              				2 
                                                                        
                                              				.001 
                                                                        
                                              				;     1/.001 
                                                                        
                                              				= 
                                                                        
                                              				1000                 Hz 
                                                                        
                                              			
Figure 1.53 Code de la partition pour l'instr 135, le temps de boucle (p6) fixe la période et la fréquence résonante de cette ligne de retard.
Bien qu'il nous soit possible de modifier le temps de boucle de l'instr 135 d'une note à l'autre, l'opcode comb utilisé dans ce design ne nous donne pas la possibilité de modifier dynamiquement ce paramètre durant le cours d'une note. Pour cela, nous employons l'opcode vdelay. Des lignes de retards variables vont nous permettre de créer un des effets les plus populaires — le "flanger".
Dans l'instr 136 (figures 1.54 et 1.55), un bruit passe à travers une série de lignes de retards variables pour produire un "flanger." En patchant la sortie d'un opcode vdelay dans l'entrée d'un autre, la force et le centre de la résonance sont accentués (à l'image de l'exemple ci-dessus utilisant l'opcode tone). De plus, ce pic de résonance parcourt rapidement le spectre des fréquences sous le contrôle d'un LFO, dont la fréquence est modifiée dynamiquement par l'opcode line.
 
                                                                        
                                             
Figure 1.54 Diagramme de l'instr 136, un vdelay "flanger."
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				136 
                                                                        
                                              				;     VDELAY  FLANGER 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				p4 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irat1 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irat2 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imsdel 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				expseg 
                                                                        
                                              				.001,iatk,iamp,idur/8,iamp*.3,idur-(iatk+irel+idur/8),iamp*.7,irel,.01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			krate 
                                                                        
                                              				line 
                                                                        
                                              				irat1,                 idur, 
  irat2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			alfo 
                                                                        
                                              				oscil 
                                                                        
                                              				imsdel,                 krate/idur, 
        19 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			anoise 
                                                                        
                                              				rand 
                                                                        
                                              				ifrq 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			adel4 
                                                                        
                                              				vdelay 
                                                                        
                                              				anoise,                 alfo, 
        imsdel 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			adel3 
                                                                        
                                              				vdelay 
                                                                        
                                              				adel4,                 alfo, 
  imsdel 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			adel2 
                                                                        
                                              				vdelay 
                                                                        
                                              				adel3,                 alfo, 
  imsdel 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			adel1 
                                                                        
                                              				vdelay 
                                                                        
                                              				adel2,                 alfo, 
  imsdel 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			adel0 
                                                                        
                                              				vdelay 
                                                                        
                                              				adel1,                 alfo, 
  imsdel 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			amix 
                                                                        
                                              				= 
                                                                        
                                              				adel0+adel1+adel2+adel3+adel4 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				kenv*amix 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				dispfft 
                                                                        
                                              				amix,                 idur, 
  1024 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.55 Code de l'orchestre pour l'instr 136, un instrument "flanger" avec une ligne de délai variable.
Les Déclarations De Notes Et Les Raccourcis
Il faut reconnaître que créer et éditer dans un format texte des listes de notes n'ai pas une partie de plaisir. Bien que ce soit encore un des aspects les plus ennyeux et non-musicaux du travail avec Csound, le principe du listage de notes vous permet de contrôler de manière très précise et directe le comportement de vos instruments.
Comme il a été dit au tout début de ce chapitre, Csound lit les fichiers MIDI, et cela peut se révéler être une façon plus intuitive de générer des notes, et de jouer vos instruments. Cependant, les instruments Csound doivent être conçus pour travailler avec le format MIDI, et vous aurez à adapter vos instruments "classiques" avant de pouvoir les intégrer dans un dispositif MIDI.
Bien que ce sujet ne soit pas abordé dans le Csound Book, plusieurs chapitres du CD-ROM sont dédiés au contrôle de Csound par claviers MIDI et fichiers MIDI. De fait, j'ai écrit un complément à ce chapitre intitulé An Introduction to MIDI-based Instrument Design in Csound pour le CD-ROM, et j'espère qu'il vous aidera à construire de grands instruments MIDI.
Même sans avoir recours au MIDI, Csound dispose d'une collection de Score Statements et Score Symbols (raccourcis) pour simplifier la création et l'édition des listes de notes. Comme les f-statements, ces commandes de partition commencent par une lettre spécifique, et sont parfois suivies par un ensemble d'arguments. J'emploie plusieurs d'entre eux dans l'etude5.sco.
La première commande de partition que j'utilise dans l'etude5.sco est l' Advance Statement — a (figure 1.56). Cette déclaration permet d'avancer dans une partition (en spécifiant un nombre de temps) sans générer aucun échantillon. Ici, elle est utilisée pour sauter les deux premières notes, et commencer le rendu de la partition à 10 secondes à l'intérieur de la "pièce". Cette déclaration d'avance peut être particulièrement utile lorsque vous travaillez sur une composition longue et complexe, et que vous voulez en affiner une partie située au milieu ou à la toute fin. Plutôt que d'attendre le rendu de la pièce entière pour entendre la dernière note, vous pouvez avancer jusqu'à la fin et rendre seulement cette partie — vous économisant des heures et des heures. La syntaxe de la déclaration d'avance est présentée dans les commentaires de la figure 1.56.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;           AVANCE 
                                                                        
                                              				SANS       
   SENS 
                                                                        
                                              				TEMPS              D'ACTIVATION 
        DE LA COMMANDE 
                                                                        
                                              				TEMPS              D'AVANCE 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			a 
                                                                        
                                              				0 
                                                                        
                                              				0 
                                                                        
                                              				10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				frq 
                                                                        
                                              				atk 
                                                                        
                                              				rel 
                                                                        
                                              				cf1 
                                                                        
                                              				cf2 
                                                                        
                                              				bw1 
                                                                        
                                              				bw2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				1 
                                                                        
                                              				5 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.5 
                                                                        
                                              				2 
                                                                        
                                              				8000 
                                                                        
                                              				200 
                                                                        
                                              				800 
                                                                        
                                              				30 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				6 
                                                                        
                                              				5 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.25 
                                                                        
                                              				1 
                                                                        
                                              				200 
                                                                        
                                              				12000 
                                                                        
                                              				10 
                                                                        
                                              				200 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				10 
                                                                        
                                              				5 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.5 
                                                                        
                                              				2 
                                                                        
                                              				8000 
                                                                        
                                              				200 
                                                                        
                                              				800 
                                                                        
                                              				30 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				14 
                                                                        
                                              				5 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.25 
                                                                        
                                              				1 
                                                                        
                                              				200 
                                                                        
                                              				12000 
                                                                        
                                              				10 
                                                                        
                                              				200 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i     128 
                                                                        
                                              				18 
                                                                        
                                              				3 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.15 
                                                                        
                                              				.1 
                                                                        
                                              				800 
                                                                        
                                              				300 
                                                                        
                                              				300 
                                                                        
                                              				40 
                                                                        
                                              			
Figure 1.56 Extrait de la partition de l' etude5.sco comportant un advance statement.
La deuxième déclaration que j'emploie dans l'etude5.sco est la Section Statement — s (figure 1.57). La déclaration de section n'a pas d'arguments. Elle divise simplement une partition en sections, et vous permet en quelque sorte de remettre le compteur des temps à 0 au début de la nouvelle section. Ceci est particulièrement utile si vous voulez répéter un passage. Il suffit pour cela d'insérer un s à la fin de la première section, de copier cette section, et de la coller après le s. La figure 1.57, tirée de l'etude5.sco, montre exactement cela.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				frq 
                                                                        
                                              				atk 
                                                                        
                                              				rel 
                                                                        
                                              				cut1 
                                                                        
                                              				cut2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     129 
                                                                        
                                              				0 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     130 
                                                                        
                                              				2 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     131 
                                                                        
                                              				4 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     132 
                                                                        
                                              				6 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     129 
                                                                        
                                              				8 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     130 
                                                                        
                                              				11 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     131 
                                                                        
                                              				12 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     132 
                                                                        
                                              				13 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			s 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				frq 
                                                                        
                                              				atk 
                                                                        
                                              				rel 
                                                                        
                                              				cut1 
                                                                        
                                              				cut2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     129 
                                                                        
                                              				0 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     130 
                                                                        
                                              				2 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     131 
                                                                        
                                              				4 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     132 
                                                                        
                                              				6 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     129 
                                                                        
                                              				8 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     130 
                                                                        
                                              				11 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     131 
                                                                        
                                              				12 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     132 
                                                                        
                                              				13 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
s 
                                                                        
                                              			
Figure 1.57 Le coupé-collé d'une section, extrait de la partition de l'etude5.sco, comportant une section statement.
La troisième déclaration de partition que j'utilise dans l'etude5.sco est la Dummy f-statement — f 0 (figure 1.58). Dans Csound vous pouvez utiliser la partition pour charger des tables de fonctions (f-tables) à n'importe quel moment. Vous pouvez ainsi remplacer la nature d'une forme d'onde ou d'un sample durant le cours d'un morceau, tout en conservant le même numéro de table dans l'orchestre. Vous pouvez aussi charger une table muette (f 0) pour prolonger la longueur d'une section particulière, ou pour insérer un silence entre deux sections. Dans la figure 1.58, j'utilise une déclaration f 0 pour introduire deux secondes de silence entre deux sections.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				frq 
                                                                        
                                              				atk 
                                                                        
                                              				rel 
                                                                        
                                              				cut1 
                                                                        
                                              				cut2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     129 
                                                                        
                                              				0 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     130 
                                                                        
                                              				2 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     131 
                                                                        
                                              				4 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     132 
                                                                        
                                              				6 
                                                                        
                                              				1.5 
                                                                        
                                              				3 
                                                                        
                                              				20000 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				500 
                                                                        
                                              				500 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     129 
                                                                        
                                              				8 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     130 
                                                                        
                                              				11 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     131 
                                                                        
                                              				12 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     132 
                                                                        
                                              				13 
                                                                        
                                              				1.2 
                                                                        
                                              				1 
                                                                        
                                              				20000 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				5000 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			s 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			f                 0 
                                                                        
                                              				2 
                                                                        
                                              				;     DECLARATION DE TABLE
   MUETTE  F0    - 2             SECONDES    DE SILENCE  ENTRE LES SECTIONS 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			s 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				frq 
                                                                        
                                              				atk 
                                                                        
                                              				rel 
                                                                        
                                              				cf1 
                                                                        
                                              				cf2 
                                                                        
                                              				bw1 
                                                                        
                                              				bw2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				0 
                                                                        
                                              				5 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.5 
                                                                        
                                              				2 
                                                                        
                                              				8000 
                                                                        
                                              				200 
                                                                        
                                              				800 
                                                                        
                                              				30 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				4 
                                                                        
                                              				5 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.25 
                                                                        
                                              				1 
                                                                        
                                              				200 
                                                                        
                                              				12000 
                                                                        
                                              				10 
                                                                        
                                              				200 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				8 
                                                                        
                                              				3 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				.15 
                                                                        
                                              				.1 
                                                                        
                                              				800 
                                                                        
                                              				300 
                                                                        
                                              				300 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     128 
                                                                        
                                              				10 
                                                                        
                                              				11 
                                                                        
                                              				.5 
                                                                        
                                              				20000 
                                                                        
                                              				1 
                                                                        
                                              				1 
                                                                        
                                              				40 
                                                                        
                                              				90 
                                                                        
                                              				10 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
s 
                                                                        
                                              			
Figure 1.58 Extrait de la partition de l'etude5.sco convoquant un dummy f0 statement qui introduit 2 secondes de silence entre deux sections.
Le quatrième ensemble de raccourcis que j'emploie dans l'etude5.sco comprend le Carry, le Ramp et le + Symbols (figure 1.59). Le symbole carry ( . ) copie la valeur d'un paramètre propre à une note à la note suivante. Le symbole ramp ( < ) interpole linéairement entre deux valeurs d'un même paramètre, sur un nombre quelconque de notes (le nombre de notes détermine le nombre de points créés par interpolation). Le symbole + est réservé au p-field p2. Il calcule automatiquement le temps de commencement de la note courante, en additionnant le temps de commencement et la durée de la note précédente (p2 + p3). Ainsi la note courante suivra directement la précédente, sans chevauchement et sans temps mort. Ces trois symboles sont utilisés dans la figure 1.59, et les valeurs correspondantes rendues claires dans la figure 1.60.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				ampdb 
                                                                        
                                              				frq 
                                                                        
                                              				fc1 
                                                                        
                                              				fc2 
                                                                        
                                              				reson              gain 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				0 
                                                                        
                                              				.1 
                                                                        
                                              				90 
                                                                        
                                              				8.09 
                                                                        
                                              				8000 
                                                                        
                                              				80 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i           . 
                                                                        
                                              				+ 
                                                                        
                                              				. 
                                                                        
                                              				< 
                                                                        
                                              				8.095 
                                                                        
                                              				< 
                                                                        
                                              				< 
                                                                        
                                              				< 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.10 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.105 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.11 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.115 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.00 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.005 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.01 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.015 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i     . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				80 
                                                                        
                                              				9.02 
                                                                        
                                              				9000 
                                                                        
                                              				60 
                                                                        
                                              				50 
                                                                        
                                              			
Figure 1.59 Extrait de la partition de l'etude5.sco convoquant les symboles carry ( . ), p2 increment ( + ), et ramp ( < ).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				ampdb 
                                                                        
                                              				frq 
                                                                        
                                              				fc1 
                                                                        
                                              				fc2 
                                                                        
                                              				reson              gain 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				0 
                                                                        
                                              				.1 
                                                                        
                                              				90 
                                                                        
                                              				8.09 
                                                                        
                                              				8000 
                                                                        
                                              				80 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.1 
                                                                        
                                              				.1 
                                                                        
                                              				89 
                                                                        
                                              				8.095 
                                                                        
                                              				8100 
                                                                        
                                              				78 
                                                                        
                                              				5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.2 
                                                                        
                                              				.1 
                                                                        
                                              				88 
                                                                        
                                              				8.10 
                                                                        
                                              				8200 
                                                                        
                                              				76 
                                                                        
                                              				10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.3 
                                                                        
                                              				.1 
                                                                        
                                              				87 
                                                                        
                                              				8.105 
                                                                        
                                              				8300 
                                                                        
                                              				74 
                                                                        
                                              				15 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.5 
                                                                        
                                              				.1 
                                                                        
                                              				86 
                                                                        
                                              				8.11 
                                                                        
                                              				8400 
                                                                        
                                              				72 
                                                                        
                                              				20 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.5 
                                                                        
                                              				.1 
                                                                        
                                              				85 
                                                                        
                                              				8.115 
                                                                        
                                              				8500 
                                                                        
                                              				70 
                                                                        
                                              				25 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.6 
                                                                        
                                              				.1 
                                                                        
                                              				84 
                                                                        
                                              				9.00 
                                                                        
                                              				8600 
                                                                        
                                              				68 
                                                                        
                                              				30 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.7 
                                                                        
                                              				.1 
                                                                        
                                              				83 
                                                                        
                                              				9.005 
                                                                        
                                              				8700 
                                                                        
                                              				66 
                                                                        
                                              				35 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.8 
                                                                        
                                              				.1 
                                                                        
                                              				82 
                                                                        
                                              				9.01 
                                                                        
                                              				8800 
                                                                        
                                              				64 
                                                                        
                                              				40 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     134 
                                                                        
                                              				.9 
                                                                        
                                              				.1 
                                                                        
                                              				81 
                                                                        
                                              				9.015 
                                                                        
                                              				8900 
                                                                        
                                              				62 
                                                                        
                                              				45 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i     134 
                                                                        
                                              				1 
                                                                        
                                              				.1 
                                                                        
                                              				80 
                                                                        
                                              				9.02 
                                                                        
                                              				9000 
                                                                        
                                              				60 
                                                                        
                                              				50 
                                                                        
                                              			
Figure 1.60 Une autre vue de l'extrait de l'etude5.sco de la figure 1.59 , dans lequel les symboles ramp ( < ), carry ( . ) et + sont remplacés par les valeurs réelles qu'ils représentent.
La dernière déclaration de partition que j'emploie dans l'etude5.sco est la Tempo Statement — t (figure 1.61). L'horloge de la partition de Csound fonctionne à 60 battements par minute. C'est la fréquence par défaut que Csound utilise, qui équivaut à une déclaration de — t 0 60. Cela signifie que lorsque vous spécifiez une durée de 1 dans p3, la note durera une seconde. Par chance, la déclaration de tempo vous permet de modifier cette valeur par défaut, soit par une constante, soit par une variable. La figure 1.61 illustre les deux possibilités.
La déclaration de tempo t 0 120 fixera un tempo constant de 120 battements par minute. L'horloge interne de Csound tournera deux fois plus vite, et toutes les valeurs de temps inscrites dans la partition seront divisées de moitié.
La déclaration de tempo t 0 120 1 30 est utilisée pour appliquer un tempo variable. Dans ce cas le tempo est fixé à 120 au temps 0, et en 1 seconde il atteint par paliers la nouvelle valeur de 30. Il va sans dire que l'utilisation d'un tempo variable rend vos partitions beaucoup moins mécaniques et plus "musicales".
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;                 t 
                                                                        
                                              				0 
                                                                        
                                              				120 
                                                                        
                                              				;     DECLARATION DE      
TEMPO FIXE : DEUX                 FOIS   PLUS RAPIDE  QUE LE TEMPO    PAR 
  DEFAUT 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;      ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				ampdb 
                                                                        
                                              				frq 
                                                                        
                                              				fc1 
                                                                        
                                              				fc2 
                                                                        
                                              				reson              gain 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      134 
                                                                        
                                              				0 
                                                                        
                                              				.1 
                                                                        
                                              				90 
                                                                        
                                              				8.09 
                                                                        
                                              				8000 
                                                                        
                                              				80 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i            . 
                                                                        
                                              				+ 
                                                                        
                                              				. 
                                                                        
                                              				< 
                                                                        
                                              				8.095 
                                                                        
                                              				< 
                                                                        
                                              				< 
                                                                        
                                              				< 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.10 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.105 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.11 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.115 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.00 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.005 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.01 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.015 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				80 
                                                                        
                                              				9.02 
                                                                        
                                              				9000 
                                                                        
                                              				60 
                                                                        
                                              				50 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			s 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;            t 
                                                                        
                                              				0 
                                                                        
                                              				120 
                                                                        
                                              				1 
                                                                        
                                              				30 
                                                                        
                                              				;           TEMPO VARIABLE : DEUX FOIS MOINS
                 RAPIDE QUE LE TEMPO PAR DEFAUT 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;      ins 
                                                                        
                                              				init 
                                                                        
                                              				dur 
                                                                        
                                              				ampdb 
                                                                        
                                              				frq 
                                                                        
                                              				fc1 
                                                                        
                                              				fc2 
                                                                        
                                              				reson              gain 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      134 
                                                                        
                                              				0 
                                                                        
                                              				.1 
                                                                        
                                              				90 
                                                                        
                                              				8.09 
                                                                        
                                              				8000 
                                                                        
                                              				80 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i            . 
                                                                        
                                              				+ 
                                                                        
                                              				. 
                                                                        
                                              				< 
                                                                        
                                              				8.095 
                                                                        
                                              				< 
                                                                        
                                              				< 
                                                                        
                                              				< 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.10 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.105 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.11 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				8.115 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.00 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.005 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.01 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				9.015 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i      . 
                                                                        
                                              				. 
                                                                        
                                              				. 
                                                                        
                                              				80 
                                                                        
                                              				9.02 
                                                                        
                                              				9000 
                                                                        
                                              				60 
                                                                        
                                              				50 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
s 
                                                                        
                                              			
Figure 1.61 Extrait de la fin de l'etude5.sco dans lequel le tempo statement est utilisé à la fois sur le mode fixe et sur le mode variable.
Elaborer ses partitions Csound dans le format texte peut être extrêmement laborieux. Cela à pousser beaucoup d'étudiants à apprendre le langage de programmation C, afin de générer leurs listes de notes algorithmiquement. Le temps-réel et le MIDI sont une solution. Mais en recourant aux raccourcis, vous pouvez rendre votre travail beaucoup plus simple, et rendre vos gestes, phrases et textures beaucoup plus expressifs.
Exercises Pour l'Etude 5
• Rendez les fichiers "orchestre" et "partition" : etude5.orc & etude5.sco.
• Jouez et écoutez les qualités sonores des différents filtres et configurations de filtres.
• Dans le Csound Reference Manual, cherchez et lisez les informations concernant les nouveaux opcodes utilisés dans les instr 128 — 136.
 			                                   
                                                                        
                                                                        
                                                                        
                                                                        
                       
  
                                                                        
                                              				
                                                                        
                                                         
                                                                        
                                              			
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					rand 
                                                                        
                                              					xamp[,                iseed] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					tone 
                                                                        
                                              					asig,                khp[,
   istor] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					butterlp 
                                                                        
                                              					asig,                kfreq[,
         iskip] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					butterbp 
                                                                        
                                              					asig,                kfreq,
   kband[, iskip] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					delayr 
                                                                        
                                              					idlt[,                istor] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					comb 
                                                                        
                                              					asig,                krvt,
   ilpt[,       istor] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              				ar 
                                                                        
                                              					vdelay 
                                                                        
                                              					asig,                adel,
   imaxdel       [, iskip] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              				a1[,             
                        a2[, 
                                                                        
                                              					diskin 
                                                                        
                                              					ifilcod,                kpitch[,
         iskiptim][,             iwraparound][,                 iformat] 
                                                                        
                                              				
                                                                        
                                              					 
                                                                        
                                              			                       
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                        
                                                                
                                                                        
                                                                        
                                                                        
                                                                        
  a3,              
               a4]] 
                                                                        
                                              					
                                                                        
                                                             
                                                                        
                                                             
• Dans l'instr 128, substituez l'opcode loscil par un opcode rand , et filtrez dynamiquement quelques-uns de vos samples.
• Dans l'instr 128, substituez un butterbp pour un reson , et écoutez la différence de qualité.
• Substituez les filtres butterlp par des filtres tone dans les instr 129 — 132. Comparez l'"efficacité" de ces filtres.
• Transformez l'instr 133 en un instrument possédant un filtre résonant passe-haut.
• Elaborez un instrument qui combine le motif de filtres en série de l'instr 132 avec le motif de filtres en parallèle de l'instr 133.
• Dessinez le diagramme de l'instr 134, un instrument possédant une ligne de retard (non abordé dans le texte).
• En ajoutant davantage d'opcodes delay transformez l'instr 134 pour en faire un instrument possédant une ligne de retard "multi-tap".
• Modifiez l'instr 135 pour en faire un résonateur multi-bandes.
• Ajoutez davantage de combs et vdelays à l'instr 135, et créez une ligne de retard complexe (multi-tap).
• En utilisant les déclarations de partition abordées dans cette section, retournez aux études 3 et 4. Répétez alors quelques sections, insérez des silences, variez le tempo au cours des sections, utilisez les déclarations advance et ramp pour explorer davantage l'étendue des possibilités offertes par ces instruments.
• Dans l'instr 136, substitutez l'opcode diskin par l'opcode rand , et "flangez" vos samples.
• Dans l'instr 136, ajoutez et testez pour votre oscillateur des contrôles dynamiques de fréquence et d'amplitude différents.
• Changez les formes d'onde de l'oscillateur de contrôle dans l'instr 136. (Essayez randh!)
• Ajoutez un filtre résonant passe-bas à votre instrument modifié "flanger".
• Faites une ballade, et écoutez le monde.
Les Variables Globales
Jusqu'à présent, nous avons utilisé uniquement les variables locales i-rate, k-rate et a-rate. Elles appartiennent à un instrument. Vous pouvez utiliser le même nom de variables locales dans plusieurs instruments successifs sans corrompre vos données asig ou amix, et sans provoquer d'interférences entre les différents signaux. En fait, les délimiteurs instr et endin isolent réellement les blocs des signaux traités les uns des autres — même s'ils possèdent exactement les mêmes "labels" et noms d'arguments.
Cependant, vous voudrez parfois          
               faire communiquer les instruments entre eux, et faire    
 passer       par    exemple        un instrument de synthèse dans
                     un instrument       de réverbération.
            Le   signal       va circuler alors comme il le ferait  à
  partir          d'une   console     de  mixage, qui envoit le signal vers
    les unités                  d'effets     en  utilisant    le canal
  des effets "sends"  et   le   canal   des   effets "returns".         
Dans       Csound,  cette  opération           est réalisée
          par l'emploi      de  variables       globales,    qui sont
    accessibles       par    l'ensemble des  instruments.            Et comme
     pour    les variables     locales,      les  variables  globales   
  peuvent   être      mises   à     jour  à     l'un
des     quatre   taux  de base : setup,      gi, 
                              gk
                             et ga,
                             où              :
                                           
les variables gi-rate sont modifiées et mises à jour à chaque nouvelle note.
les variables gk-rate sont modifiées et mises à jour au taux de contrôle.
les variables ga-rate sont modifiées et mises à jour au taux audio.
Appartennant à la fois à tous les instruments et à aucun, les variables globales doivent être initialisées. Une variable globale est généralement initialisée dans l'instrument 0 et "remplie" à l'intérieur d'un instrument local. Où se trouve ce mystérieux "instrument 0"? En fait, cet instrument 0 se situe entre la section d'entête et la déclaration du premier instrument de l'orchestre, et se limite aux lignes définissant les différentes variables globales. Dans la figure 1.62, immédiatement après l'entête, dans l'instrument 0, les variables gacmb et garvb (nos 2 bus d'effets globaux) sont nettoyées et initialisées à 0.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			sr 
                                                                        
                                              				= 
                                                                        
                                              				44100 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kr 
                                                                        
                                              				= 
                                                                        
                                              				4410 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ksmps 
                                                                        
                                              				= 
                                                                        
                                              				10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			nchnls 
                                                                        
                                              				= 
                                                                        
                                              				1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			gacmb 
                                                                        
                                              				init 
                                                                        
                                              				0 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			garvb 
                                                                        
                                              				init 
                                                                        
                                              				0 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				instr 
                                                                        
                                              				137 
                                                                        
                                              			
Figure 1.62 Les deux variables globales gacmb et garvb sont initialisées dans l'instrument 0 après l'entête et avant le premier instrument.
Création sonore Etude 6: Réverbération et Panoramique
Définissons les variables globales à utiliser, et ajoutons un traitement "externe" pour nos instruments.
A partir de l'instr 137 (figures 1.63 et 1.64), le signal sec de loscil est ajouté (mixé) avec le signal traité sur un bus séparé de réverbération et d'écho.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			asig 
                                                                        
                                              				loscil 
                                                                        
                                              				kenv,                 ifrq, 
  ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				asig 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			garvb 
                                                                        
                                              				= 
                                                                        
                                              				garvb+(asig*irvbsnd) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
gacmb 
                                                                        
                                              				= 
                                                                        
                                              				gacmb+(asig*icmbsnd) 
                                                                        
                                              			
Notez que le signal sec est encore envoyé directement, en utilisant l'opcode out, comme nous l'avons fait depuis le début. Mais ensuite ce même signal est passé globalement dans deux autres instruments, l'instr 198 (un écho) et l'instr 199 (une réverbération), comme il est montré dans les figures 1.63 et 1.64.
 
                                                                        
                                             
Figure 1.63 Diagramme des instr 137, 198 et 199, un instrument de synthèse à table d'onde (instr 137) et deux effets globaux (instr 198 et 199).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				137 
                                                                        
                                              				;           LOSCIL ET GLOBAL REVERB/COMB  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				cpspch(p5) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifun 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irvbsnd 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			icmbsnd 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				linen 
                                                                        
                                              				iamp,                 iatk, 
  idur,       irel 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig 
                                                                        
                                              				loscil 
                                                                        
                                              				kenv,                 ifrq, 
  ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				asig 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			garvb 
                                                                        
                                              				= 
                                                                        
                                              				garvb+(asig*irvbsnd) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			gacmb 
                                                                        
                                              				= 
                                                                        
                                              				gacmb+(asig*icmbsnd) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				endin 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				198 
                                                                        
                                              				;                ECHO GLOBAL 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			itime 
                                                                        
                                              				= 
                                                                        
                                              				p4 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iloop 
                                                                        
                                              				= 
                                                                        
                                              				p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				linen 
                                                                        
                                              				1,      .01,  idur,       .01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			acomb 
                                                                        
                                              				comb 
                                                                        
                                              				gacmb,                 itime, 
        iloop, 0 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				acomb*kenv 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			gacmb 
                                                                        
                                              				= 
                                                                        
                                              				0 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				endin 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				199 
                                                                        
                                              				;                REVERB GLOBALE 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irvbtim 
                                                                        
                                              				= 
                                                                        
                                              				p4 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ihiatn 
                                                                        
                                              				= 
                                                                        
                                              				p5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			arvb 
                                                                        
                                              				nreverb 
                                                                        
                                              				garvb,                 irvbtim, 
        ihiatn 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				out 
                                                                        
                                              				arvb 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			garvb 
                                                                        
                                              				= 
                                                                        
                                              				0 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.64 Code de l'orchestre pour les trois instruments qui opèrent ensemble pour ajouter à un opcode qui lit en boucle des échantillons (instr 137) une réverbération (instr 199) et un écho (instr 198).
Il est important de noter que dans le fichier partition (figure 1.65), ces trois instruments doivent être activés. Pour éviter des bruits transitoires et artefacts, les instruments globaux sont habituellement laissés en activité pour la durée entière de la section, et les variables globales sont toujours nettoyées quand l'instrument récepteur est désactivé (gacmb = 0 et garvb = 0).
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				strt 
                                                                        
                                              				dur 
                                                                        
                                              				rvbtime 
                                                                        
                                              				diffusion hautes fréquences 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     199 
                                                                        
                                              				0 
                                                                        
                                              				12 
                                                                        
                                              				4.6 
                                                                        
                                              				.8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				strt 
                                                                        
                                              				dur 
                                                                        
                                              				time 
                                                                        
                                              				temps              de boucle(loop) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     198 
                                                                        
                                              				0 
                                                                        
                                              				6 
                                                                        
                                              				10 
                                                                        
                                              				.8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     198 
                                                                        
                                              				0 
                                                                        
                                              				6 
                                                                        
                                              				10 
                                                                        
                                              				.3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     198 
                                                                        
                                              				0 
                                                                        
                                              				6 
                                                                        
                                              				10 
                                                                        
                                              				.5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			;     ins 
                                                                        
                                              				strt 
                                                                        
                                              				dur 
                                                                        
                                              				amp 
                                                                        
                                              				frq1 
                                                                        
                                              				sample 
                                                                        
                                              				atk 
                                                                        
                                              				rel 
                                                                        
                                              				rvbsnd 
                                                                        
                                              				cmbsnd 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			i     137 
                                                                        
                                              				0 
                                                                        
                                              				2.1 
                                                                        
                                              				70 
                                                                        
                                              				8.09 
                                                                        
                                              				5 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				.3 
                                                                        
                                              				.6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
i     137 
                                                                        
                                              				1 
                                                                        
                                              				2.1 
                                                                        
                                              				70 
                                                                        
                                              				8.09 
                                                                        
                                              				5 
                                                                        
                                              				.01 
                                                                        
                                              				.01 
                                                                        
                                              				.5 
                                                                        
                                              				.6 
                                                                        
                                              			
Figure 1.65 Le fichier partition pour notre instrument global "comb/nreverb /loscil". L'instrument global nreverb, instr 199 est activé au commencement de la partition pour la durée entière du passage. Trois copies de notre instrument global comb, instr 198 sont activées simultanément avec des temps de boucle différents. Pour finir, deux copies de notre instrument loscil, instr 137 commencent l'un après l'autre.
Notre prochain instrument, l'instr 138 (figures 1.66 et 1.67), est basé sur un modèle FM utilisé précédemment, mais ici l'instrument est développé, de telle sorte à pouvoir appliquer un panoramique au signal.
 
                                                                        
                                             
Figure 1.66 Diagramme de l'instr 138, un instrument FM dynamique avec un panoramique et une réverbération globale.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         instr 
                                                                        
                                              				138 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				cpspch(p5) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifc 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifm 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			indx1 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			indx2 
                                                                        
                                              				= 
                                                                        
                                              				p11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			indxtim 
                                                                        
                                              				= 
                                                                        
                                              				p12 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ilfodep 
                                                                        
                                              				= 
                                                                        
                                              				p13 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ilfofrq 
                                                                        
                                              				= 
                                                                        
                                              				p14 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ipan 
                                                                        
                                              				= 
                                                                        
                                              				p15 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irvbsnd 
                                                                        
                                              				= 
                                                                        
                                              				p16 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kampenv 
                                                                        
                                              				expseg 
                                                                        
                                              				.01,iatk,iamp,idur/9,iamp*.6,idur/(iatk+irel+idur/9),iamp*.7,irel,.01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			klfo 
                                                                        
                                              				oscil 
                                                                        
                                              				ilfodep,           ilfofrq,      1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kindex 
                                                                        
                                              				expon 
                                                                        
                                              				indx1,         indxtim,     indx2 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig 
                                                                        
                                              				foscil 
                                                                        
                                              				kampenv,           ifrq+klfo,      
 ifc,             ifm, kindex, 1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				outs 
                                                                        
                                              				asig*ipan,            asig*(1-ipan) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			garvb 
                                                                        
                                              				= 
                                                                        
                                              				garvb+(asig*irvbsnd) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              			
Figure 1.67 Code de l'orchestre pour l'instr 138, un instrument FM dynamique avec un vibrato, un panoramique discret et une réverbération globale.
Remarquez que dans l'instr 138, le panoramique est réalisé avec une simple variable qui fonctionne comme un bouton de panoramique sur une console de mixage traditionnelle. Comment cela est-il réalisé?
Comme vous le savez à présent, si nous multiplions un signal par une échelle de valeurs allant de 0 à 1, nous contrôlons en réalité l'amplitude de ce signal entre 0 et 100%. Donc, si nous multiplions simultanément un signal par une échelle et son contraire (0.2 et 0.8 par exemple), nous obtenons deux sorties dont les amplitudes peuvent aller de 0 à 100%, mais qui demeurent inversement proportionnelles.
Par exemple, si l'échelle est fixée à 1, et que notre sortie gauche prenne la valeur de 1, nous aurons 100% de notre signal à la gauche, et 0% (1-1) à droite. Maintenant, si la sortie gauche prend la valeur de 0.2, alors nous aurons 20% de notre signal à gauche, et 80% (1 - 0.2) à droite. Cet algorithme fournit un moyen simple de contrôler la répartition gauche/droite d'un signal avec une seule valeur. Il est utilisé dans l'instr 138.orc et instr 138.sco , et illustré dans les figures 1.66 et 1.67.
Le fichier etude6.orc contient quatre instruments additionnels "globo-spatiaux". Ils sont tous basés sur ceux présentés dans les études précédentes. Vous devez reconnaitre les algorithmes. Mais tous ont été pourvus d'une fonction de panoramique et d'une réverbération globale. Je vous invite à dessiner les diagrammes de ces instruments, et à les étudier. Chacun applique une méthode différente pour réaliser un panoramique et une réverbération. Je vous invite aussi à reprendre tous les instruments que nous avons étudiés jusqu'à présent, et de leur ajouter une fonction de panoramique et une réverbération globale.
Pour clore ce chapitre, je vais présenter l' instr 141.orc et instr141.sco (figures 1.68 et 1.69), qui adaptent un modèle de modulation d'amplitudes rencontré précédemment, et ajoute un panoramique basé sur un LFO, et une réverbération globale.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
 
                                                                        
                                                         
Figure 1.68 Diagramme de l'instr 141, un instrument AM (modulation d'amplitude) avec un panoramique LFO et une réverbération globale.
 		                                      
                                                                        
      
                                                                        
                                              			
                                                                        
                                                     
                                                                        
                                              		
                                                                        
                                              				 
                                                                        
                                              			  
                                                                        
                                              				instr 
                                                                        
                                              				141 
                                                                        
                                              				;     AM  PANORAMIQUE    
  LFO 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			idur 
                                                                        
                                              				= 
                                                                        
                                              				p3 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iamp 
                                                                        
                                              				= 
                                                                        
                                              				ampdb(p4) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifrq 
                                                                        
                                              				= 
                                                                        
                                              				cpspch(p5) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ifun 
                                                                        
                                              				= 
                                                                        
                                              				p6 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatk 
                                                                        
                                              				= 
                                                                        
                                              				p7 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irel 
                                                                        
                                              				= 
                                                                        
                                              				p8 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			iatkfun 
                                                                        
                                              				= 
                                                                        
                                              				p9 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodpth 
                                                                        
                                              				= 
                                                                        
                                              				p10 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodfrq 
                                                                        
                                              				= 
                                                                        
                                              				p11 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			imodfun 
                                                                        
                                              				= 
                                                                        
                                              				p12 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			ipanfrq 
                                                                        
                                              				= 
                                                                        
                                              				p13 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			irvbsnd 
                                                                        
                                              				= 
                                                                        
                                              				p14 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kenv 
                                                                        
                                              				envlpx 
                                                                        
                                              				iamp,                 iatk, 
  idur,       irel,             iatkfun,               .7, .01 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kpan 
                                                                        
                                              				oscil 
                                                                        
                                              				.5,                ipanfrq, 
  1 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			klfo 
                                                                        
                                              				oscil 
                                                                        
                                              				imodpth,                 imodfrq, 
        imodfun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			asig 
                                                                        
                                              				oscil 
                                                                        
                                              				klfo*kenv,                
ifrq,       ifun 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			kpanlfo 
                                                                        
                                              				= 
                                                                        
                                              				kpan+.5 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			
                                                                        
                                                         outs  
                                                                        
                                              				asig*kpanlfo,             
   asig*(1-kpanlfo) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              			garvb 
                                                                        
                                              				= 
                                                                        
                                              				garvb+(asig*irvbsnd) 
                                                                        
                                              			
                                                                        
                                              				 
                                                                        
                                              		                        
                                                                        
                                                                        
                                                                        
                                                                        
                                     
                                                                
                                                       
  
                                                                        
                                              				endin 
                                                                        
                                              				  
                                                                        
                                              			
Figure 1.69 Code de l'orchestre pour l'instr 141, un instrument AM (modulation d'amplitude) avec un panoramique LFO et une réverbération globale.
Remarquez que l'amplitude du panoramique LFO est fixée à 0.5. Cela signifie que la plage de cette onde bipolaire s'étend de -0.5 à +0.5. Remarquez alors que je modifie le centre de ce signal bipolaire en lui ajoutant 0.5 (kpanlfo = kpan + .5). Le signal devient ainsi unipolaire! L'onde prend différentes valeurs entre 0 et 1, avec son centre à 0.5. Et cela n'est-il pas ce dont nous avons besoin pour notre "bouton de panoramique", des valeurs allant de 0 à 1 ? Des enveloppes de panoramique, des oscillateurs de panoramique, et des panoramiques aléatoires peuvent tous être réalisés en appliquant cette simple solution!
Exercises Pour l'Etude 6
• Ecrivez un ensemble de courtes études "musicales" en utilisant vos instruments Csound, modifiés au cours de ce chapitre, et envoyez-les moi à : rboulanger@berklee.edu.
Conclusion
Dans ce chapitre introductif, j'ai essayé de présenter la syntaxe du langage Csound, tout en abordant quelques notions de création sonore. Avec ces connaissances de base, les chapitres suivants rédigés par les meilleurs professeurs, créateurs de sons, programmateurs et compositeurs, vous révèleront les pouvoirs cachés de Csound, et vous aideront à trouver les richesses qui s'y trouvent. Sur ce chemin, j'espère sincèrement que vous ne découvrirez pas seulement des nouvelles sonorités exquises, mais que votre travail avec Csound vous apportera à la fois une meilleure compréhension de vos synthétiseurs-machines et une meilleure appréciation et conscience de la nature et de l'esprit du son musical...le langage de l'âme.
Cage, J. 1976. Silence. Middletown, CT: Wesleyan University Press.
Chadabe, J. 1997. Electric Sound: The Past and Promise of Electronic Music. New York: Prentice Hall.
De Poli, G., A. Piccialli, and C. Roads. 1991. Representations of Musical Signals. Cambridge, MA: M.I.T. Press.
De Poli, G., A. Piccialli, S. T. Pope, Stephen and C. Roads. 1997. Musical Signal Processing. The Netherlands: Swets and Zeitlinger.
Dodge, C. and T. Jerse. 1997. Computer Music. 2nd rev. New York: Schirmer Books.
Eliot, T.S. 1971. Four Quartets. New York: Harcourt Brace & Company.
Mathews, Max V. 1969. The Technology of Computer Music. Cambridge, MA: M.I.T. Press.
Mathews, Max V. and J. R. Pierce. 1989. Current Directions in Computer Music Research. Cambridge, MA: M.I.T. Press.
Moore, R. F. 1990. Elements of Computer Music. New York: Prentice Hall.
Pierce, J. R. 1992. The Science of Musical Sound. 2nd rev. edn. New York: W. H. Freeman.
Pohlmann, Ken C. 1995. Principles of Digital Audio. 3d edn. New York: McGraw-Hill.
Roads, C. 1989.The Music Machine. Cambridge, MA: M.I.T. Press.
Roads, C. 1996. The Computer Music Tutorial. Cambridge, MA: M.I.T. Press.
Roads, C. and J. Strawn. 1987. Foundations of Computer Music. 3d edn. Cambridge, MA: M.I.T. Press.
Steiglitz, K. 1996. A Digital Signal Processing Primer. Reading, MA: Addison-Wesley.